#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() {
  printf(
      "SYNOPSIS\n\n    memo [options]\n\nOPTIONS\n\n    -a <content> "
      "[yyyy-MM-dd]        Add a new note with optional date\n    -d <id>      "
      "                    Delete note by id\n    -D                           "
      "    Delete all notes\n    -e <format> <path>               Export notes "
      "a file\n                                     Format must be either csv "
      "or html\n    -f <search>                      Find notes by search "
      "term\n    -F <regex>                       Find notes by regular "
      "expression\n    -i                               Read from stdin until "
      "^D\n    -l <n>                           Show latest n notes\n    -m "
      "<id>                          Mark note status as done\n    -M <id>     "
      "                     Mark note status as undone\n    -o                 "
      "              Show all notes organized by date\n    -O                  "
      "             Reorder and organize note id codes\n    -p                 "
      "              Show current memo file path\n    -P [id]                  "
      "        Show postponed or mark note as postponed\n    -R                "
      "               Delete all notes marked as done\n    -r <id> "
      "[content]/[yyyy-MM-dd]   Replace note content or date\n    -s           "
      "                    Show all notes except postponed\n                   "
      "                  (Same as simply running memo)\n    -T                 "
      "              Mark all notes as done\n    -u                            "
      "   Show only undone notes\n\n    -                                Read "
      "from stdin\n    -h                               Show short help and "
      "exit. This page\n    -V                               Show version "
      "number of program\n\nFor more information and examples see man "
      "memo(1).\n\nAUTHORS\n    Copyright (C) 2014-2015 Niko Rosvall "
      "<niko@byteptr.com>\n\n    Released under license GPL-3+. For more "
      "information, see\n    http://www.gnu.org/licenses\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 = [1812 x i8] c"SYNOPSIS\0A\0A memo [options]\0A\0AOPTIONS\0A\0A -a <content> [yyyy-MM-dd] Add a new note with optional date\0A -d <id> Delete note by id\0A -D Delete all notes\0A -e <format> <path> Export notes a file\0A Format must be either csv or html\0A -f <search> Find notes by search term\0A -F <regex> Find notes by regular expression\0A -i Read from stdin until ^D\0A -l <n> Show latest n notes\0A -m <id> Mark note status as done\0A -M <id> Mark note status as undone\0A -o Show all notes organized by date\0A -O Reorder and organize note id codes\0A -p Show current memo file path\0A -P [id] Show postponed or mark note as postponed\0A -R Delete all notes marked as done\0A -r <id> [content]/[yyyy-MM-dd] Replace note content or date\0A -s Show all notes except postponed\0A (Same as simply running memo)\0A -T Mark all notes as done\0A -u Show only undone notes\0A\0A - Read from stdin\0A -h Show short help and exit. This page\0A -V Show version number of program\0A\0AFor more information and examples see man memo(1).\0A\0AAUTHORS\0A Copyright (C) 2014-2015 Niko Rosvall <niko@byteptr.com>\0A\0A Released under license GPL-3+. For more information, see\0A http://www.gnu.org/licenses\0A\00"
define void @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1812 x i8], [1812 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1811 x i8] c"SYNOPSIS\0A\0A memo [options]\0A\0AOPTIONS\0A\0A -a <content> [yyyy-MM-dd] Add a new note with optional date\0A -d <id> Delete note by id\0A -D Delete all notes\0A -e <format> <path> Export notes a file\0A Format must be either csv or html\0A -f <search> Find notes by search term\0A -F <regex> Find notes by regular expression\0A -i Read from stdin until ^D\0A -l <n> Show latest n notes\0A -m <id> Mark note status as done\0A -M <id> Mark note status as undone\0A -o Show all notes organized by date\0A -O Reorder and organize note id codes\0A -p Show current memo file path\0A -P [id] Show postponed or mark note as postponed\0A -R Delete all notes marked as done\0A -r <id> [content]/[yyyy-MM-dd] Replace note content or date\0A -s Show all notes except postponed\0A (Same as simply running memo)\0A -T Mark all notes as done\0A -u Show only undone notes\0A\0A - Read from stdin\0A -h Show short help and exit. This page\0A -V Show version number of program\0A\0AFor more information and examples see man memo(1).\0A\0AAUTHORS\0A Copyright (C) 2014-2015 Niko Rosvall <niko@byteptr.com>\0A\0A Released under license GPL-3+. For more information, see\0A http://www.gnu.org/licenses\00"
define void @usage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1811 x i8], [1811 x i8]* @str, i64 0, i64 0))
ret void
}