#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 help(void) {
  printf(
      "nvram options:\n"
      "  --print-config[=var]\n"
      "          print value of a config variable, or print all variables in\n"
      "          the specified (or all) partitions\n"
      "  --zero | -0\n"
      "          terminate config pairs with a NUL character\n"
      "  --update-config <var>=<value>\n"
      "          update the config variable in the specified partition; the "
      "-p\n"
      "          option must also be specified\n"
      "  -p <partition>\n"
      "          specify a partition; required with --update-config option,\n"
      "          optional with --print-config option\n"
      "  --print-vpd\n"
      "          print VPD\n"
      "  --print-all-vpd\n"
      "          print VPD, including vendor specific data\n"
      "  --print-err-log\n"
      "          print checkstop error log\n"
      "  --print-event-scan\n"
      "          print event scan log\n"
      "  --partitions\n"
      "          print NVRAM paritition header info\n"
      "  --dump <name>\n"
      "          raw dump of partition (use --partitions to see names)\n"
      "  --ascii <name>\n"
      "          print partition contents as ASCII text\n"
      "  --unzip <name>\n"
      "          decompress and print compressed data from partition\n"
      "  --nvram-file <path>\n"
      "          specify alternate nvram data file (default is /dev/nvram)\n"
      "  --nvram-size\n"
      "          specify size of nvram data (for repair operations)\n"
      "  --verbose (-v)\n"
      "          be (more) verbose\n"
      "  --help\n"
      "          print what you are reading right now.\n");
}


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

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

LLVM IR (-O0):
@.str = [1260 x i8] c"nvram options:\0A --print-config[=var]\0A print value of a config variable, or print all variables in\0A the specified (or all) partitions\0A --zero | -0\0A terminate config pairs with a NUL character\0A --update-config <var>=<value>\0A update the config variable in the specified partition; the -p\0A option must also be specified\0A -p <partition>\0A specify a partition; required with --update-config option,\0A optional with --print-config option\0A --print-vpd\0A print VPD\0A --print-all-vpd\0A print VPD, including vendor specific data\0A --print-err-log\0A print checkstop error log\0A --print-event-scan\0A print event scan log\0A --partitions\0A print NVRAM paritition header info\0A --dump <name>\0A raw dump of partition (use --partitions to see names)\0A --ascii <name>\0A print partition contents as ASCII text\0A --unzip <name>\0A decompress and print compressed data from partition\0A --nvram-file <path>\0A specify alternate nvram data file (default is /dev/nvram)\0A --nvram-size\0A specify size of nvram data (for repair operations)\0A --verbose (-v)\0A be (more) verbose\0A --help\0A print what you are reading right now.\0A\00"
define void @help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1260 x i8], [1260 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1259 x i8] c"nvram options:\0A --print-config[=var]\0A print value of a config variable, or print all variables in\0A the specified (or all) partitions\0A --zero | -0\0A terminate config pairs with a NUL character\0A --update-config <var>=<value>\0A update the config variable in the specified partition; the -p\0A option must also be specified\0A -p <partition>\0A specify a partition; required with --update-config option,\0A optional with --print-config option\0A --print-vpd\0A print VPD\0A --print-all-vpd\0A print VPD, including vendor specific data\0A --print-err-log\0A print checkstop error log\0A --print-event-scan\0A print event scan log\0A --partitions\0A print NVRAM paritition header info\0A --dump <name>\0A raw dump of partition (use --partitions to see names)\0A --ascii <name>\0A print partition contents as ASCII text\0A --unzip <name>\0A decompress and print compressed data from partition\0A --nvram-file <path>\0A specify alternate nvram data file (default is /dev/nvram)\0A --nvram-size\0A specify size of nvram data (for repair operations)\0A --verbose (-v)\0A be (more) verbose\0A --help\0A print what you are reading right now.\00"
define void @help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1259 x i8], [1259 x i8]* @str, i64 0, i64 0))
ret void
}