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