| lli - directly execute programs from LLVM bitcode | 
 | ================================================= | 
 |  | 
 | .. program:: lli | 
 |  | 
 | SYNOPSIS | 
 | -------- | 
 |  | 
 | :program:`lli` [*options*] [*filename*] [*program args*] | 
 |  | 
 | DESCRIPTION | 
 | ----------- | 
 |  | 
 | :program:`lli` directly executes programs in LLVM bitcode format.  It takes a program | 
 | in LLVM bitcode format and executes it using a just-in-time compiler or an | 
 | interpreter. | 
 |  | 
 | :program:`lli` is *not* an emulator. It will not execute IR of different architectures | 
 | and it can only interpret (or JIT-compile) for the host architecture. | 
 |  | 
 | The JIT compiler takes the same arguments as other tools, like :program:`llc`, | 
 | but they don't necessarily work for the interpreter. | 
 |  | 
 | If `filename` is not specified, then :program:`lli` reads the LLVM bitcode for the | 
 | program from standard input. | 
 |  | 
 | The optional *args* specified on the command line are passed to the program as | 
 | arguments. | 
 |  | 
 | GENERAL OPTIONS | 
 | --------------- | 
 |  | 
 | .. option:: -fake-argv0=executable | 
 |  | 
 |  Override the ``argv[0]`` value passed into the executing program. | 
 |  | 
 | .. option:: -force-interpreter={false,true} | 
 |  | 
 |  If set to true, use the interpreter even if a just-in-time compiler is available | 
 |  for this architecture. Defaults to false. | 
 |  | 
 | .. option:: -help | 
 |  | 
 |  Print a summary of command line options. | 
 |  | 
 | .. option:: -load=pluginfilename | 
 |  | 
 |  Causes :program:`lli` to load the plugin (shared object) named *pluginfilename* and use | 
 |  it for optimization. | 
 |  | 
 | .. option:: -stats | 
 |  | 
 |  Print statistics from the code-generation passes. This is only meaningful for | 
 |  the just-in-time compiler, at present. | 
 |  | 
 | .. option:: -time-passes | 
 |  | 
 |  Record the amount of time needed for each code-generation pass and print it to | 
 |  standard error. | 
 |  | 
 | .. option:: -version | 
 |  | 
 |  Print out the version of :program:`lli` and exit without doing anything else. | 
 |  | 
 | TARGET OPTIONS | 
 | -------------- | 
 |  | 
 | .. option:: -mtriple=target triple | 
 |  | 
 |  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. | 
 |  | 
 | .. option:: -march=arch | 
 |  | 
 |  Specify the architecture for which to generate assembly, overriding the target | 
 |  encoded in the bitcode file.  See the output of **llc -help** for a list of | 
 |  valid architectures.  By default this is inferred from the target triple or | 
 |  autodetected to the current architecture. | 
 |  | 
 | .. option:: -mcpu=cpuname | 
 |  | 
 |  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: | 
 |  **llvm-as < /dev/null | llc -march=xyz -mcpu=help** | 
 |  | 
 | .. option:: -mattr=a1,+a2,-a3,... | 
 |  | 
 |  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: | 
 |  **llvm-as < /dev/null | llc -march=xyz -mattr=help** | 
 |  | 
 | FLOATING POINT OPTIONS | 
 | ---------------------- | 
 |  | 
 | .. option:: -disable-excess-fp-precision | 
 |  | 
 |  Disable optimizations that may increase floating point precision. | 
 |  | 
 | .. option:: -enable-no-infs-fp-math | 
 |  | 
 |  Enable optimizations that assume no Inf values. | 
 |  | 
 | .. option:: -enable-no-nans-fp-math | 
 |  | 
 |  Enable optimizations that assume no NAN values. | 
 |  | 
 | .. option:: -enable-unsafe-fp-math | 
 |  | 
 |  Causes :program:`lli` to enable optimizations that may decrease floating point | 
 |  precision. | 
 |  | 
 | .. option:: -soft-float | 
 |  | 
 |  Causes :program:`lli` to generate software floating point library calls instead of | 
 |  equivalent hardware instructions. | 
 |  | 
 | CODE GENERATION OPTIONS | 
 | ----------------------- | 
 |  | 
 | .. option:: -code-model=model | 
 |  | 
 |  Choose the code model from: | 
 |  | 
 |  .. code-block:: text | 
 |  | 
 |       default: Target default code model | 
 |       tiny: Tiny code model | 
 |       small: Small code model | 
 |       kernel: Kernel code model | 
 |       medium: Medium code model | 
 |       large: Large code model | 
 |  | 
 | .. option:: -disable-post-RA-scheduler | 
 |  | 
 |  Disable scheduling after register allocation. | 
 |  | 
 | .. option:: -disable-spill-fusing | 
 |  | 
 |  Disable fusing of spill code into instructions. | 
 |  | 
 | .. option:: -jit-enable-eh | 
 |  | 
 |  Exception handling should be enabled in the just-in-time compiler. | 
 |  | 
 | .. option:: -join-liveintervals | 
 |  | 
 |  Coalesce copies (default=true). | 
 |  | 
 | .. option:: -nozero-initialized-in-bss | 
 |  | 
 |   Don't place zero-initialized symbols into the BSS section. | 
 |  | 
 | .. option:: -pre-RA-sched=scheduler | 
 |  | 
 |  Instruction schedulers available (before register allocation): | 
 |  | 
 |  .. code-block:: text | 
 |  | 
 |       =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 | 
 |  | 
 | .. option:: -regalloc=allocator | 
 |  | 
 |  Register allocator to use (default=linearscan) | 
 |  | 
 |  .. code-block:: text | 
 |  | 
 |       =bigblock: Big-block register allocator | 
 |       =linearscan: linear scan register allocator =local -   local register allocator | 
 |       =simple: simple register allocator | 
 |  | 
 | .. option:: -relocation-model=model | 
 |  | 
 |  Choose relocation model from: | 
 |  | 
 |  .. code-block:: text | 
 |  | 
 |       =default: Target default relocation model | 
 |       =static: Non-relocatable code =pic -   Fully relocatable, position independent code | 
 |       =dynamic-no-pic: Relocatable external references, non-relocatable code | 
 |  | 
 | .. option:: -spiller | 
 |  | 
 |  Spiller to use (default=local) | 
 |  | 
 |  .. code-block:: text | 
 |  | 
 |       =simple: simple spiller | 
 |       =local: local spiller | 
 |  | 
 | .. option:: -x86-asm-syntax=syntax | 
 |  | 
 |  Choose style of code to emit from X86 backend: | 
 |  | 
 |  .. code-block:: text | 
 |  | 
 |       =att: Emit AT&T-style assembly | 
 |       =intel: Emit Intel-style assembly | 
 |  | 
 | EXIT STATUS | 
 | ----------- | 
 |  | 
 | If :program:`lli` 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. | 
 |  | 
 | SEE ALSO | 
 | -------- | 
 |  | 
 | :manpage:`llc(1)` |