#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*/ exit(int);
int /*<<< orphan*/ fputs(char *, int /*<<< orphan*/);
int /*<<< orphan*/ stderr;
void usage(void) {
  static char use[] =
      "usage: graf [-B] [-c] [-D] [-L] [-e] [-m] [-M] [-n] [-o] [-p] [-r] [-R] "
      "[-s]\n            [-S] [-t] [-u] [-x x1,x2] [-y y1,y2] [-l x] [-l y] "
      "[-N label]\n            [-T title] [-d host:display] [-f font] [-g "
      "geometry] [ file ... ]\n\n-B    Draw bar graph\n-c    Don't use "
      "off-screen pixmaps to enhance screen redraws\n-D    Interpret X values "
      "as timestamps and label axis with date and time\n-e    Draw error bars "
      "at each point\n-l x  Logarithmic scale for X axis\n-l y  Logarithmic "
      "scale for Y axis\n-L    Show timestamps as local time not GMT, implies "
      "-D\n-m    Mark each data point with large dot\n-M    Forces black and "
      "white\n-n    Don't draw lines (scatter plot)\n-N    Dataset label "
      "(repeat for multiple datasets)\n-o    Draws bounding box around "
      "data\n-p    If -m, mark each point with a pixel instead\n-r    Draw "
      "rectangle at each point (-R for filled)\n-s    X Window System's notion "
      "of spline curves (not implemented)\n-S    Set scale for slope "
      "display\n-t    Draw tick marks instead of full grid\n-T    Graph "
      "title\n-u    Input files are ulaw encoded\n\nType ?, F1 or Ctrl-H in "
      "the window for a list of mouse & keyboard functions.\n";
  fputs(use, stderr);
  exit(1);
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
mov    0x2eb5(%rip),%rax
mov    (%rax),%esi
lea    0x2f0c(%rip),%rdi
call   1030 <fputs@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<usage>:
push   %rax
mov    0x2eb8(%rip),%rax
mov    (%rax),%esi
lea    0x2f0f(%rip),%rdi
call   1030 <fputs@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@usage.use = internal global [1120 x i8] c"usage: graf [-B] [-c] [-D] [-L] [-e] [-m] [-M] [-n] [-o] [-p] [-r] [-R] [-s]\0A [-S] [-t] [-u] [-x x1,x2] [-y y1,y2] [-l x] [-l y] [-N label]\0A [-T title] [-d host:display] [-f font] [-g geometry] [ file ... ]\0A\0A-B Draw bar graph\0A-c Don't use off-screen pixmaps to enhance screen redraws\0A-D Interpret X values as timestamps and label axis with date and time\0A-e Draw error bars at each point\0A-l x Logarithmic scale for X axis\0A-l y Logarithmic scale for Y axis\0A-L Show timestamps as local time not GMT, implies -D\0A-m Mark each data point with large dot\0A-M Forces black and white\0A-n Don't draw lines (scatter plot)\0A-N Dataset label (repeat for multiple datasets)\0A-o Draws bounding box around data\0A-p If -m, mark each point with a pixel instead\0A-r Draw rectangle at each point (-R for filled)\0A-s X Window System's notion of spline curves (not implemented)\0A-S Set scale for slope display\0A-t Draw tick marks instead of full grid\0A-T Graph title\0A-u Input files are ulaw encoded\0A\0AType ?, F1 or Ctrl-H in the window for a list of mouse & keyboard functions.\0A\00"
@stderr = global i32 0
define void @usage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fputs(i8* getelementptr inbounds ([1120 x i8], [1120 x i8]* @usage.use, i64 0, i64 0), i32 %1)
%3 = call i32 @exit(i32 1)
unreachable
}

LLVM IR (-O2):
@usage.use = internal global [1120 x i8] c"usage: graf [-B] [-c] [-D] [-L] [-e] [-m] [-M] [-n] [-o] [-p] [-r] [-R] [-s]\0A [-S] [-t] [-u] [-x x1,x2] [-y y1,y2] [-l x] [-l y] [-N label]\0A [-T title] [-d host:display] [-f font] [-g geometry] [ file ... ]\0A\0A-B Draw bar graph\0A-c Don't use off-screen pixmaps to enhance screen redraws\0A-D Interpret X values as timestamps and label axis with date and time\0A-e Draw error bars at each point\0A-l x Logarithmic scale for X axis\0A-l y Logarithmic scale for Y axis\0A-L Show timestamps as local time not GMT, implies -D\0A-m Mark each data point with large dot\0A-M Forces black and white\0A-n Don't draw lines (scatter plot)\0A-N Dataset label (repeat for multiple datasets)\0A-o Draws bounding box around data\0A-p If -m, mark each point with a pixel instead\0A-r Draw rectangle at each point (-R for filled)\0A-s X Window System's notion of spline curves (not implemented)\0A-S Set scale for slope display\0A-t Draw tick marks instead of full grid\0A-T Graph title\0A-u Input files are ulaw encoded\0A\0AType ?, F1 or Ctrl-H in the window for a list of mouse & keyboard functions.\0A\00"
@stderr = global i32 0
define void @usage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fputs(i8* getelementptr inbounds ([1120 x i8], [1120 x i8]* @usage.use, i64 0, i64 0), i32 %1)
%3 = tail call i32 @exit(i32 1)
unreachable
}