#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 usage(void) {
  printf(
      "usage:\n"
      "    -v, --verbose\n"
      "        enable verbose output.\n"
      "    -p, --progress\n"
      "        enable progress reporting, showing throughput at 20 intervals.\n"
      "    -h, --help\n"
      "        print this help and quit.\n"
      "    -f, --dir\n"
      "        directory where the benchmark should take place.\n"
      "    -c, --cachesize\n"
      "        set the cache size (MB) for tokufs runs. default 512\n"
      "    -n, --files\n"
      "        number of files to operate on. default 1.\n"
      "    -d, --children\n"
      "        maximum number of children in a single directory. default 100.\n"
      "    -m, --threads\n"
      "        number of concurrent threads. default 1.\n"
      "    -b, --iosize\n"
      "        size of each thread's read or write thread_operation. default "
      "512.\n"
      "    -x, --operations\n"
      "        number of operations per thread. default 1.\n"
      "    -s, --scan\n"
      "        just perform a metadata scan on an existing benchmark-bucket\n"
      "    --serial\n"
      "        perform sequential IO on each file. default.\n"
      "    --random\n"
      "        perform random IO on each file\n"
      "    --pwrite\n"
      "        perform pwrites on each file\n"
      "    --pread\n"
      "        perform preads on each file\n");
}


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

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

LLVM IR (-O0):
@.str = [1036 x i8] c"usage:\0A -v, --verbose\0A enable verbose output.\0A -p, --progress\0A enable progress reporting, showing throughput at 20 intervals.\0A -h, --help\0A print this help and quit.\0A -f, --dir\0A directory where the benchmark should take place.\0A -c, --cachesize\0A set the cache size (MB) for tokufs runs. default 512\0A -n, --files\0A number of files to operate on. default 1.\0A -d, --children\0A maximum number of children in a single directory. default 100.\0A -m, --threads\0A number of concurrent threads. default 1.\0A -b, --iosize\0A size of each thread's read or write thread_operation. default 512.\0A -x, --operations\0A number of operations per thread. default 1.\0A -s, --scan\0A just perform a metadata scan on an existing benchmark-bucket\0A --serial\0A perform sequential IO on each file. default.\0A --random\0A perform random IO on each file\0A --pwrite\0A perform pwrites on each file\0A --pread\0A perform preads on each file\0A\00"
define void @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1036 x i8], [1036 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1035 x i8] c"usage:\0A -v, --verbose\0A enable verbose output.\0A -p, --progress\0A enable progress reporting, showing throughput at 20 intervals.\0A -h, --help\0A print this help and quit.\0A -f, --dir\0A directory where the benchmark should take place.\0A -c, --cachesize\0A set the cache size (MB) for tokufs runs. default 512\0A -n, --files\0A number of files to operate on. default 1.\0A -d, --children\0A maximum number of children in a single directory. default 100.\0A -m, --threads\0A number of concurrent threads. default 1.\0A -b, --iosize\0A size of each thread's read or write thread_operation. default 512.\0A -x, --operations\0A number of operations per thread. default 1.\0A -s, --scan\0A just perform a metadata scan on an existing benchmark-bucket\0A --serial\0A perform sequential IO on each file. default.\0A --random\0A perform random IO on each file\0A --pwrite\0A perform pwrites on each file\0A --pread\0A perform preads on each file\00"
define void @usage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1035 x i8], [1035 x i8]* @str, i64 0, i64 0))
ret void
}