#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 *, char *);
void usage(void) {
  printf("%s\n", "  NAME                                                       "
                 "          \n"
                 "         pumpd -- pump daemon                                "
                 "          \n"
                 "                                                             "
                 "          \n"
                 "  SYNOPSIS                                                   "
                 "          \n"
                 "         pumpd [option]                                      "
                 "          \n"
                 "                                                             "
                 "          \n"
                 "  DESCRIPTION                                                "
                 "          \n"
                 "         pumpd is a daemon that manages all the active pumps "
                 "on a      \n"
                 "         filesystem. Active pumps must be registered with "
                 "the daemon   \n"
                 "         before they will begin processing. See pump(1).     "
                 "          \n"
                 "                                                             "
                 "          \n"
                 "  OPTIONS                                                    "
                 "          \n"
                 "         The following options are supported:                "
                 "          \n"
                 "                                                             "
                 "          \n"
                 "         start        start the daemon if it is not already "
                 "running    \n"
                 "         stop         stop the daemon if it is running       "
                 "          \n"
                 "         restart      stop and then start the daemon         "
                 "          \n"
                 "         stat         print the current status of the daemon "
                 "          \n"
                 "         help         print this screen                      "
                 "          \n"
                 "                                                             "
                 "          \n"
                 "  OTHER                                                      "
                 "          \n"
                 "         Nothing yet                                         "
                 "          \n");
}


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

x86 assembly (clang, -O2):
<usage>:
lea    0xee9(%rip),%rdi
lea    0xee6(%rip),%rsi
jmp    1030 <printf@plt>

LLVM IR (-O0):
@.str = [4 x i8] c"%s\0A\00"
@.str.1 = [1585 x i8] c" NAME \0A pumpd -- pump daemon \0A \0A SYNOPSIS \0A pumpd [option] \0A \0A DESCRIPTION \0A pumpd is a daemon that manages all the active pumps on a \0A filesystem. Active pumps must be registered with the daemon \0A before they will begin processing. See pump(1). \0A \0A OPTIONS \0A The following options are supported: \0A \0A start start the daemon if it is not already running \0A stop stop the daemon if it is running \0A restart stop and then start the daemon \0A stat print the current status of the daemon \0A help print this screen \0A \0A OTHER \0A Nothing yet \0A\00"
define void @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([1585 x i8], [1585 x i8]* @.str.1, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [4 x i8] c"%s\0A\00"
@.str.1 = [1585 x i8] c" NAME \0A pumpd -- pump daemon \0A \0A SYNOPSIS \0A pumpd [option] \0A \0A DESCRIPTION \0A pumpd is a daemon that manages all the active pumps on a \0A filesystem. Active pumps must be registered with the daemon \0A before they will begin processing. See pump(1). \0A \0A OPTIONS \0A The following options are supported: \0A \0A start start the daemon if it is not already running \0A stop stop the daemon if it is running \0A restart stop and then start the daemon \0A stat print the current status of the daemon \0A help print this screen \0A \0A OTHER \0A Nothing yet \0A\00"
define void @usage() {
%1 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([1585 x i8], [1585 x i8]* @.str.1, i64 0, i64 0))
ret void
}