<?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>lli</title> <link rel="stylesheet" href="manpage.css" type="text/css" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link rev="made" href="mailto:root@localhost" /> </head> <body> <!-- INDEX BEGIN --> <div name="index"> <p><a name="__index__"></a></p> <!-- <ul> <li><a href="#name">NAME</a></li> <li><a href="#synopsis">SYNOPSIS</a></li> <li><a href="#description">DESCRIPTION</a></li> <li><a href="#general_options">GENERAL OPTIONS</a></li> <li><a href="#target_options">TARGET OPTIONS</a></li> <li><a href="#floating_point_options">FLOATING POINT OPTIONS</a></li> <li><a href="#code_generation_options">CODE GENERATION OPTIONS</a></li> <li><a href="#exit_status">EXIT STATUS</a></li> <li><a href="#see_also">SEE ALSO</a></li> <li><a href="#author">AUTHOR</a></li> </ul> --> </div> <!-- INDEX END --> <p> </p> <hr /> <h1><a name="name">NAME</a></h1> <p>lli - directly execute programs from LLVM bitcode</p> <p> </p> <hr /> <h1><a name="synopsis">SYNOPSIS</a></h1> <p><strong>lli</strong> [<em>options</em>] [<em>filename</em>] [<em>program args</em>]</p> <p> </p> <hr /> <h1><a name="description">DESCRIPTION</a></h1> <p><strong>lli</strong> directly executes programs in LLVM bitcode format. It takes a program in LLVM bitcode format and executes it using a just-in-time compiler, if one is available for the current architecture, or an interpreter. <strong>lli</strong> takes all of the same code generator options as <a href="././llc.html">llc</a>, but they are only effective when <strong>lli</strong> is using the just-in-time compiler.</p> <p>If <em>filename</em> is not specified, then <strong>lli</strong> reads the LLVM bitcode for the program from standard input.</p> <p>The optional <em>args</em> specified on the command line are passed to the program as arguments.</p> <p> </p> <hr /> <h1><a name="general_options">GENERAL OPTIONS</a></h1> <dl> <dt><strong><a name="fake_argv0_executable" class="item"><strong>-fake-argv0</strong>=<em>executable</em></a></strong></dt> <dd> <p>Override the <code>argv[0]</code> value passed into the executing program.</p> </dd> <dt><strong><a name="force_interpreter_false_true" class="item"><strong>-force-interpreter</strong>=<em>{false,true}</em></a></strong></dt> <dd> <p>If set to true, use the interpreter even if a just-in-time compiler is available for this architecture. Defaults to false.</p> </dd> <dt><strong><a name="help" class="item"><strong>-help</strong></a></strong></dt> <dd> <p>Print a summary of command line options.</p> </dd> <dt><strong><a name="load_puginfilename" class="item"><strong>-load</strong>=<em>puginfilename</em></a></strong></dt> <dd> <p>Causes <strong>lli</strong> to load the plugin (shared object) named <em>pluginfilename</em> and use it for optimization.</p> </dd> <dt><strong><a name="stats" class="item"><strong>-stats</strong></a></strong></dt> <dd> <p>Print statistics from the code-generation passes. This is only meaningful for the just-in-time compiler, at present.</p> </dd> <dt><strong><a name="time_passes" class="item"><strong>-time-passes</strong></a></strong></dt> <dd> <p>Record the amount of time needed for each code-generation pass and print it to standard error.</p> </dd> <dt><strong><a name="version" class="item"><strong>-version</strong></a></strong></dt> <dd> <p>Print out the version of <strong>lli</strong> and exit without doing anything else.</p> </dd> </dl> <p> </p> <hr /> <h1><a name="target_options">TARGET OPTIONS</a></h1> <dl> <dt><strong><a name="mtriple_target_triple" class="item"><strong>-mtriple</strong>=<em>target triple</em></a></strong></dt> <dd> <p>Override the target triple specified in the input bitcode file with the specified string. This may result in a crash if you pick an architecture which is not compatible with the current system.</p> </dd> <dt><strong><a name="march_arch" class="item"><strong>-march</strong>=<em>arch</em></a></strong></dt> <dd> <p>Specify the architecture for which to generate assembly, overriding the target encoded in the bitcode file. See the output of <strong>llc -help</strong> for a list of valid architectures. By default this is inferred from the target triple or autodetected to the current architecture.</p> </dd> <dt><strong><a name="mcpu_cpuname" class="item"><strong>-mcpu</strong>=<em>cpuname</em></a></strong></dt> <dd> <p>Specify a specific chip in the current architecture to generate code for. By default this is inferred from the target triple and autodetected to the current architecture. For a list of available CPUs, use: <strong>llvm-as < /dev/null | llc -march=xyz -mcpu=help</strong></p> </dd> <dt><strong><a name="mattr_a1_a2_a3" class="item"><strong>-mattr</strong>=<em>a1,+a2,-a3,...</em></a></strong></dt> <dd> <p>Override or control specific attributes of the target, such as whether SIMD operations are enabled or not. The default set of attributes is set by the current CPU. For a list of available attributes, use: <strong>llvm-as < /dev/null | llc -march=xyz -mattr=help</strong></p> </dd> </dl> <p> </p> <hr /> <h1><a name="floating_point_options">FLOATING POINT OPTIONS</a></h1> <dl> <dt><strong><a name="disable_excess_fp_precision" class="item"><strong>-disable-excess-fp-precision</strong></a></strong></dt> <dd> <p>Disable optimizations that may increase floating point precision.</p> </dd> <dt><strong><a name="enable_no_infs_fp_math" class="item"><strong>-enable-no-infs-fp-math</strong></a></strong></dt> <dd> <p>Enable optimizations that assume no Inf values.</p> </dd> <dt><strong><a name="enable_no_nans_fp_math" class="item"><strong>-enable-no-nans-fp-math</strong></a></strong></dt> <dd> <p>Enable optimizations that assume no NAN values.</p> </dd> <dt><strong><a name="enable_unsafe_fp_math" class="item"><strong>-enable-unsafe-fp-math</strong></a></strong></dt> <dd> <p>Causes <strong>lli</strong> to enable optimizations that may decrease floating point precision.</p> </dd> <dt><strong><a name="soft_float" class="item"><strong>-soft-float</strong></a></strong></dt> <dd> <p>Causes <strong>lli</strong> to generate software floating point library calls instead of equivalent hardware instructions.</p> </dd> </dl> <p> </p> <hr /> <h1><a name="code_generation_options">CODE GENERATION OPTIONS</a></h1> <dl> <dt><strong><a name="code_model_model" class="item"><strong>-code-model</strong>=<em>model</em></a></strong></dt> <dd> <p>Choose the code model from:</p> <pre> default: Target default code model small: Small code model kernel: Kernel code model medium: Medium code model large: Large code model</pre> </dd> <dt><strong><a name="disable_post_ra_scheduler" class="item"><strong>-disable-post-RA-scheduler</strong></a></strong></dt> <dd> <p>Disable scheduling after register allocation.</p> </dd> <dt><strong><a name="disable_spill_fusing" class="item"><strong>-disable-spill-fusing</strong></a></strong></dt> <dd> <p>Disable fusing of spill code into instructions.</p> </dd> <dt><strong><a name="enable_correct_eh_support" class="item"><strong>-enable-correct-eh-support</strong></a></strong></dt> <dd> <p>Make the -lowerinvoke pass insert expensive, but correct, EH code.</p> </dd> <dt><strong><a name="jit_enable_eh" class="item"><strong>-jit-enable-eh</strong></a></strong></dt> <dd> <p>Exception handling should be enabled in the just-in-time compiler.</p> </dd> <dt><strong><a name="join_liveintervals" class="item"><strong>-join-liveintervals</strong></a></strong></dt> <dd> <p>Coalesce copies (default=true).</p> </dd> <dt><strong><a name="nozero_initialized_in_bss_don_t_place_zero_initialized_symbols_into_the_bss_section" class="item"><strong>-nozero-initialized-in-bss</strong> Don't place zero-initialized symbols into the BSS section.</a></strong></dt> <dt><strong><a name="pre_ra_sched_scheduler" class="item"><strong>-pre-RA-sched</strong>=<em>scheduler</em></a></strong></dt> <dd> <p>Instruction schedulers available (before register allocation):</p> <pre> =default: Best scheduler for the target =none: No scheduling: breadth first sequencing =simple: Simple two pass scheduling: minimize critical path and maximize processor utilization =simple-noitin: Simple two pass scheduling: Same as simple except using generic latency =list-burr: Bottom-up register reduction list scheduling =list-tdrr: Top-down register reduction list scheduling =list-td: Top-down list scheduler -print-machineinstrs - Print generated machine code</pre> </dd> <dt><strong><a name="regalloc_allocator" class="item"><strong>-regalloc</strong>=<em>allocator</em></a></strong></dt> <dd> <p>Register allocator to use (default=linearscan)</p> <pre> =bigblock: Big-block register allocator =linearscan: linear scan register allocator =local - local register allocator =simple: simple register allocator</pre> </dd> <dt><strong><a name="relocation_model_model" class="item"><strong>-relocation-model</strong>=<em>model</em></a></strong></dt> <dd> <p>Choose relocation model from:</p> <pre> =default: Target default relocation model =static: Non-relocatable code =pic - Fully relocatable, position independent code =dynamic-no-pic: Relocatable external references, non-relocatable code</pre> </dd> <dt><strong><a name="spiller" class="item"><strong>-spiller</strong></a></strong></dt> <dd> <p>Spiller to use (default=local)</p> <pre> =simple: simple spiller =local: local spiller</pre> </dd> <dt><strong><a name="x86_asm_syntax_syntax" class="item"><strong>-x86-asm-syntax</strong>=<em>syntax</em></a></strong></dt> <dd> <p>Choose style of code to emit from X86 backend:</p> <pre> =att: Emit AT&T-style assembly =intel: Emit Intel-style assembly</pre> </dd> </dl> <p> </p> <hr /> <h1><a name="exit_status">EXIT STATUS</a></h1> <p>If <strong>lli</strong> fails to load the program, it will exit with an exit code of 1. Otherwise, it will return the exit code of the program it executes.</p> <p> </p> <hr /> <h1><a name="see_also">SEE ALSO</a></h1> <p><a href="././llc.html">llc</a></p> <p> </p> <hr /> <h1><a name="author">AUTHOR</a></h1> <p>Maintained by the LLVM Team (<a href="http://llvm.org">http://llvm.org</a>).</p> </body> </html>