#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ printf(char *);
void home_task_usage(void) {
  printf(
      "Usage: arduino-serial -b <bps> -p <serialport> [OPTIONS]\n"
      "\n"
      "Options:\n"
      "  -h, --help                 Print this help message\n"
      "  -b, --baud=baudrate        Baudrate (bps) of Arduino (default 9600)\n"
      "  -p, --port=serialport      Serial port Arduino is connected to\n"
      "  -w, --wait                 Wait untill serial port Arduino is "
      "connected\n"
      "  -s, --send=string          Send string to Arduino\n"
      "  -c --command               Specify command to run with the return "
      "reading\n"
      "  -r, --receive              Receive string from Arduino & print it "
      "out\n"
      "  -R, --retry                Retry send x times\n"
      "  -F  --flush                Flush serial port buffers for fresh "
      "reading\n"
      "  -d  --delay=millis         Delay for specified milliseconds\n"
      "  -t  --timeout=millis       Timeout for reads in millisecs (default "
      "5000)\n"
      "  -q  --quiet                Don't print out as much info\n"
      "  -a  --firstchar            Specify char for start reading\n"
      "  -z  --lastchar             Specify char for end reading\n"
      "\n"
      "Note: Order is important. Set '-b' baudrate before opening port'-p'. \n"
      "      Used to make series of actions: '-d 2000 -s hello -d 100 -r' \n"
      "      means 'wait 2secs, send 'hello', wait 100msec, get reply'\n"
      "\n");
}


x86 assembly (clang, -O0):
<home_task_usage>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<home_task_usage>:
lea    0xee9(%rip),%rdi
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [1168 x i8] c"Usage: arduino-serial -b <bps> -p <serialport> [OPTIONS]\0A\0AOptions:\0A -h, --help Print this help message\0A -b, --baud=baudrate Baudrate (bps) of Arduino (default 9600)\0A -p, --port=serialport Serial port Arduino is connected to\0A -w, --wait Wait untill serial port Arduino is connected\0A -s, --send=string Send string to Arduino\0A -c --command Specify command to run with the return reading\0A -r, --receive Receive string from Arduino & print it out\0A -R, --retry Retry send x times\0A -F --flush Flush serial port buffers for fresh reading\0A -d --delay=millis Delay for specified milliseconds\0A -t --timeout=millis Timeout for reads in millisecs (default 5000)\0A -q --quiet Don't print out as much info\0A -a --firstchar Specify char for start reading\0A -z --lastchar Specify char for end reading\0A\0ANote: Order is important. Set '-b' baudrate before opening port'-p'. \0A Used to make series of actions: '-d 2000 -s hello -d 100 -r' \0A means 'wait 2secs, send 'hello', wait 100msec, get reply'\0A\0A\00"
define void @home_task_usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1168 x i8], [1168 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1167 x i8] c"Usage: arduino-serial -b <bps> -p <serialport> [OPTIONS]\0A\0AOptions:\0A -h, --help Print this help message\0A -b, --baud=baudrate Baudrate (bps) of Arduino (default 9600)\0A -p, --port=serialport Serial port Arduino is connected to\0A -w, --wait Wait untill serial port Arduino is connected\0A -s, --send=string Send string to Arduino\0A -c --command Specify command to run with the return reading\0A -r, --receive Receive string from Arduino & print it out\0A -R, --retry Retry send x times\0A -F --flush Flush serial port buffers for fresh reading\0A -d --delay=millis Delay for specified milliseconds\0A -t --timeout=millis Timeout for reads in millisecs (default 5000)\0A -q --quiet Don't print out as much info\0A -a --firstchar Specify char for start reading\0A -z --lastchar Specify char for end reading\0A\0ANote: Order is important. Set '-b' baudrate before opening port'-p'. \0A Used to make series of actions: '-d 2000 -s hello -d 100 -r' \0A means 'wait 2secs, send 'hello', wait 100msec, get reply'\0A\00"
define void @home_task_usage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1167 x i8], [1167 x i8]* @str, i64 0, i64 0))
ret void
}