#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 CliShowUsage(void) {
  printf(
      "Usage:\n"
      "\tyaAGC [options] exec-ropes-file [core-resume-file]\n\n"
      "Options:\n\n"
      "--exec=EXECFILE   Use EXECFILE as the exec-ropes-file\n"
      "--fullname        Output information used by emacs-GDB interface.\n"
      "--symbols=SYMFILE Read symbols from SYMFILE generated by yaYUL.\n"
      "--quiet           Do not print version number on startup.\n"
      "--cd=DIR          Change current directory to DIR.\n"
      "--command=FILE    Execute AGC commands from FILE.\n"
      "--directory=DIR   Search for source files in DIR.\n"
      "--port=N          Change the server port number (default=19697).\n"
      "--nodebug         Disables debugging and run just the simulation\n"
      "--interlace=N     Read the socket interface every N CPU instructions.\n"
      "--dump-time=N     Create core image every N seconds (default = 10).\n"
      "--cdu-log         Used only for debugging. Creates the file "
      "yaAGC.cdulog\n"
      "                  containing data related to the bandwidth-limiting of\n"
      "                  CDU inputs PCDU and MCDU.\n"
      "--debug-dsky      Rather than run the core program, go into DSKY-debug\n"
      "                  mode. In this mode send pre-determined codes to\n"
      "                  the DSKY upon receiving DSKY keypresses.\n"
      "--debug-deda      This mode runs the core program as usual, but also\n"
      "                  responds to messages from yaDEDA and generates fake\n"
      "                  messages to yaDEDA for testing purposes.\n"
      "--deda-quiet      Used with --debug-deda to eliminate outputs from "
      "yaAGC\n"
      "                  to the DEDA.  In other words, lets yaAGC parse the\n"
      "                  messages being received from the DEDA, but never to\n"
      "                  send any.  That lets \"yaAGC --debug-deda "
      "--deda-quiet\"\n"
      "                  to be used alongside yaAGS without conflict.\n"
      "--cfg=file        The name of a configuration file.  Presently, the\n"
      "                  configuration files is used only for --debug-dsky\n"
      "                  mode.  It would typically be the same configuration\n"
      "                  file as used for yaDSKY.\n\n"
      "Note that the exec-ropes file should contain exactly 36 banks\n"
      "(36x1024=36864 words, or 73728 bytes). Other sizes may be accepted,\n"
      "but it is unclear what (if any) utility such core-rope images\n"
      "would have. (In particular, if the core-rope\n"
      "is supposed to be for actual Luminary or Colossus software, then\n"
      "the checksums of the missing memory banks would be incorrect, and\n"
      "so the built-in self-test would fail.)\n\n");
}


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

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

LLVM IR (-O0):
@.str = [2320 x i8] c"Usage:\0A\09yaAGC [options] exec-ropes-file [core-resume-file]\0A\0AOptions:\0A\0A--exec=EXECFILE Use EXECFILE as the exec-ropes-file\0A--fullname Output information used by emacs-GDB interface.\0A--symbols=SYMFILE Read symbols from SYMFILE generated by yaYUL.\0A--quiet Do not print version number on startup.\0A--cd=DIR Change current directory to DIR.\0A--command=FILE Execute AGC commands from FILE.\0A--directory=DIR Search for source files in DIR.\0A--port=N Change the server port number (default=19697).\0A--nodebug Disables debugging and run just the simulation\0A--interlace=N Read the socket interface every N CPU instructions.\0A--dump-time=N Create core image every N seconds (default = 10).\0A--cdu-log Used only for debugging. Creates the file yaAGC.cdulog\0A containing data related to the bandwidth-limiting of\0A CDU inputs PCDU and MCDU.\0A--debug-dsky Rather than run the core program, go into DSKY-debug\0A mode. In this mode send pre-determined codes to\0A the DSKY upon receiving DSKY keypresses.\0A--debug-deda This mode runs the core program as usual, but also\0A responds to messages from yaDEDA and generates fake\0A messages to yaDEDA for testing purposes.\0A--deda-quiet Used with --debug-deda to eliminate outputs from yaAGC\0A to the DEDA. In other words, lets yaAGC parse the\0A messages being received from the DEDA, but never to\0A send any. That lets \22yaAGC --debug-deda --deda-quiet\22\0A to be used alongside yaAGS without conflict.\0A--cfg=file The name of a configuration file. Presently, the\0A configuration files is used only for --debug-dsky\0A mode. It would typically be the same configuration\0A file as used for yaDSKY.\0A\0ANote that the exec-ropes file should contain exactly 36 banks\0A(36x1024=36864 words, or 73728 bytes). Other sizes may be accepted,\0Abut it is unclear what (if any) utility such core-rope images\0Awould have. (In particular, if the core-rope\0Ais supposed to be for actual Luminary or Colossus software, then\0Athe checksums of the missing memory banks would be incorrect, and\0Aso the built-in self-test would fail.)\0A\0A\00"
define void @CliShowUsage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([2320 x i8], [2320 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [2319 x i8] c"Usage:\0A\09yaAGC [options] exec-ropes-file [core-resume-file]\0A\0AOptions:\0A\0A--exec=EXECFILE Use EXECFILE as the exec-ropes-file\0A--fullname Output information used by emacs-GDB interface.\0A--symbols=SYMFILE Read symbols from SYMFILE generated by yaYUL.\0A--quiet Do not print version number on startup.\0A--cd=DIR Change current directory to DIR.\0A--command=FILE Execute AGC commands from FILE.\0A--directory=DIR Search for source files in DIR.\0A--port=N Change the server port number (default=19697).\0A--nodebug Disables debugging and run just the simulation\0A--interlace=N Read the socket interface every N CPU instructions.\0A--dump-time=N Create core image every N seconds (default = 10).\0A--cdu-log Used only for debugging. Creates the file yaAGC.cdulog\0A containing data related to the bandwidth-limiting of\0A CDU inputs PCDU and MCDU.\0A--debug-dsky Rather than run the core program, go into DSKY-debug\0A mode. In this mode send pre-determined codes to\0A the DSKY upon receiving DSKY keypresses.\0A--debug-deda This mode runs the core program as usual, but also\0A responds to messages from yaDEDA and generates fake\0A messages to yaDEDA for testing purposes.\0A--deda-quiet Used with --debug-deda to eliminate outputs from yaAGC\0A to the DEDA. In other words, lets yaAGC parse the\0A messages being received from the DEDA, but never to\0A send any. That lets \22yaAGC --debug-deda --deda-quiet\22\0A to be used alongside yaAGS without conflict.\0A--cfg=file The name of a configuration file. Presently, the\0A configuration files is used only for --debug-dsky\0A mode. It would typically be the same configuration\0A file as used for yaDSKY.\0A\0ANote that the exec-ropes file should contain exactly 36 banks\0A(36x1024=36864 words, or 73728 bytes). Other sizes may be accepted,\0Abut it is unclear what (if any) utility such core-rope images\0Awould have. (In particular, if the core-rope\0Ais supposed to be for actual Luminary or Colossus software, then\0Athe checksums of the missing memory banks would be incorrect, and\0Aso the built-in self-test would fail.)\0A\00"
define void @CliShowUsage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([2319 x i8], [2319 x i8]* @str, i64 0, i64 0))
ret void
}