=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
