=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 |