#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 *, char *, char *, char *);
void help(char *argv[]) {
  printf(
      "Convert node ages to durations\n"
      "\n"
      "Synopsis\n"
      "--------\n"
      "\n"
      "%s [-h] <newick trees filename|->\n"
      "\n"
      "Input\n"
      "-----\n"
      "\n"
      "Argument is the name of a file that contains Newick trees, or '-' (in\n"
      "which case trees are read from standard input). The branch \"lengths\"\n"
      "are interpreted as (absolute) dates, e.g. in Mya.\n"
      "\n"
      "Output\n"
      "------\n"
      "\n"
      "Prints the input trees with branch lengths representing elapsed time.\n"
      "This is handy if you have data about ages rather than durations, e.g.\n"
      "you will typically know that two sister clades split 450 Mya, or that\n"
      "some clade lasted from the early Devonian to the present. By using the\n"
      "Newick format's 'length' slot to code ages, you can use this program\n"
      "to generate a tree with correct branch lengths.\n"
      "\n"
      "Options\n"
      "-------\n"
      "\n"
      "    -h: print this message and exit\n"
      "\n"
      "Examples\n"
      "--------\n"
      "\n"
      "# File data/vertebrates.nw is age-encoded (every node's \"length\" is\n"
      "# actually the age (in million years ago) when the branch split into\n"
      "# the daughter branches). To get a usual, duration-encoded tree:\n"
      "\n"
      "$ %s data/vertebrates.nw\n"
      "\n"
      "# This works well with options -Ir, -t and -u to nw_display:\n"
      "\n"
      "$ %s data/vertebrates.nw | nw_display -Ir -t -u 'million years ago' -\n",
      argv[0], argv[0], argv[0]);
}


x86 assembly (clang, -O0):
<help>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%rsi
mov    -0x8(%rbp),%rax
mov    (%rax),%rdx
mov    -0x8(%rbp),%rax
mov    (%rax),%rcx
lea    0xec8(%rip),%rdi
call   1030 <printf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<help>:
mov    (%rdi),%rcx
lea    0xee6(%rip),%rdi
mov    %rcx,%rsi
mov    %rcx,%rdx
jmp    1030 <printf@plt>

LLVM IR (-O0):
@.str = [1138 x i8] c"Convert node ages to durations\0A\0ASynopsis\0A--------\0A\0A%s [-h] <newick trees filename|->\0A\0AInput\0A-----\0A\0AArgument is the name of a file that contains Newick trees, or '-' (in\0Awhich case trees are read from standard input). The branch \22lengths\22\0Aare interpreted as (absolute) dates, e.g. in Mya.\0A\0AOutput\0A------\0A\0APrints the input trees with branch lengths representing elapsed time.\0AThis is handy if you have data about ages rather than durations, e.g.\0Ayou will typically know that two sister clades split 450 Mya, or that\0Asome clade lasted from the early Devonian to the present. By using the\0ANewick format's 'length' slot to code ages, you can use this program\0Ato generate a tree with correct branch lengths.\0A\0AOptions\0A-------\0A\0A -h: print this message and exit\0A\0AExamples\0A--------\0A\0A# File data/vertebrates.nw is age-encoded (every node's \22length\22 is\0A# actually the age (in million years ago) when the branch split into\0A# the daughter branches). To get a usual, duration-encoded tree:\0A\0A$ %s data/vertebrates.nw\0A\0A# This works well with options -Ir, -t and -u to nw_display:\0A\0A$ %s data/vertebrates.nw | nw_display -Ir -t -u 'million years ago' -\0A\00"
define void @help(i8** %0) {
%2 = alloca i8**
store i8** %0, i8*** %2
%3 = load i8**, i8*** %2
%4 = getelementptr inbounds i8*, i8** %3, i64 0
%5 = load i8*, i8** %4
%6 = load i8**, i8*** %2
%7 = getelementptr inbounds i8*, i8** %6, i64 0
%8 = load i8*, i8** %7
%9 = load i8**, i8*** %2
%10 = getelementptr inbounds i8*, i8** %9, i64 0
%11 = load i8*, i8** %10
%12 = call i32 @printf(i8* getelementptr inbounds ([1138 x i8], [1138 x i8]* @.str, i64 0, i64 0), i8* %5, i8* %8, i8* %11)
ret void
}

LLVM IR (-O2):
@.str = [1138 x i8] c"Convert node ages to durations\0A\0ASynopsis\0A--------\0A\0A%s [-h] <newick trees filename|->\0A\0AInput\0A-----\0A\0AArgument is the name of a file that contains Newick trees, or '-' (in\0Awhich case trees are read from standard input). The branch \22lengths\22\0Aare interpreted as (absolute) dates, e.g. in Mya.\0A\0AOutput\0A------\0A\0APrints the input trees with branch lengths representing elapsed time.\0AThis is handy if you have data about ages rather than durations, e.g.\0Ayou will typically know that two sister clades split 450 Mya, or that\0Asome clade lasted from the early Devonian to the present. By using the\0ANewick format's 'length' slot to code ages, you can use this program\0Ato generate a tree with correct branch lengths.\0A\0AOptions\0A-------\0A\0A -h: print this message and exit\0A\0AExamples\0A--------\0A\0A# File data/vertebrates.nw is age-encoded (every node's \22length\22 is\0A# actually the age (in million years ago) when the branch split into\0A# the daughter branches). To get a usual, duration-encoded tree:\0A\0A$ %s data/vertebrates.nw\0A\0A# This works well with options -Ir, -t and -u to nw_display:\0A\0A$ %s data/vertebrates.nw | nw_display -Ir -t -u 'million years ago' -\0A\00"
define void @help(i8** nocapture %0) {
%2 = load i8*, i8** %0
%3 = tail call i32 @printf(i8* getelementptr inbounds ([1138 x i8], [1138 x i8]* @.str, i64 0, i64 0), i8* %2, i8* %2, i8* %2)
ret void
}