123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294 |
- lli - directly execute programs from LLVM bitcode
- =================================================
- SYNOPSIS
- --------
- **lli** [*options*] [*filename*] [*program args*]
- DESCRIPTION
- -----------
- **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. **lli** takes all of
- the same code generator options as llc|llc, but they are only effective when
- **lli** is using the just-in-time compiler.
- If *filename* is not specified, then **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
- ---------------
- **-fake-argv0**\ =\ *executable*
- Override the ``argv[0]`` value passed into the executing program.
- **-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.
- **-help**
- Print a summary of command line options.
- **-load**\ =\ *pluginfilename*
- Causes **lli** to load the plugin (shared object) named *pluginfilename* and use
- it for optimization.
- **-stats**
- Print statistics from the code-generation passes. This is only meaningful for
- the just-in-time compiler, at present.
- **-time-passes**
- Record the amount of time needed for each code-generation pass and print it to
- standard error.
- **-version**
- Print out the version of **lli** and exit without doing anything else.
- TARGET OPTIONS
- --------------
- **-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.
- **-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.
- **-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**
- **-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
- ----------------------
- **-disable-excess-fp-precision**
- Disable optimizations that may increase floating point precision.
- **-enable-no-infs-fp-math**
- Enable optimizations that assume no Inf values.
- **-enable-no-nans-fp-math**
- Enable optimizations that assume no NAN values.
- **-enable-unsafe-fp-math**
- Causes **lli** to enable optimizations that may decrease floating point
- precision.
- **-soft-float**
- Causes **lli** to generate software floating point library calls instead of
- equivalent hardware instructions.
- CODE GENERATION OPTIONS
- -----------------------
- **-code-model**\ =\ *model*
- Choose the code model from:
- .. code-block:: perl
- default: Target default code model
- small: Small code model
- kernel: Kernel code model
- medium: Medium code model
- large: Large code model
- **-disable-post-RA-scheduler**
- Disable scheduling after register allocation.
- **-disable-spill-fusing**
- Disable fusing of spill code into instructions.
- **-jit-enable-eh**
- Exception handling should be enabled in the just-in-time compiler.
- **-join-liveintervals**
- Coalesce copies (default=true).
- **-nozero-initialized-in-bss** Don't place zero-initialized symbols into the BSS section.
- **-pre-RA-sched**\ =\ *scheduler*
- Instruction schedulers available (before register allocation):
- .. code-block:: perl
- =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
- **-regalloc**\ =\ *allocator*
- Register allocator to use (default=linearscan)
- .. code-block:: perl
- =bigblock: Big-block register allocator
- =linearscan: linear scan register allocator =local - local register allocator
- =simple: simple register allocator
- **-relocation-model**\ =\ *model*
- Choose relocation model from:
- .. code-block:: perl
- =default: Target default relocation model
- =static: Non-relocatable code =pic - Fully relocatable, position independent code
- =dynamic-no-pic: Relocatable external references, non-relocatable code
- **-spiller**
- Spiller to use (default=local)
- .. code-block:: perl
- =simple: simple spiller
- =local: local spiller
- **-x86-asm-syntax**\ =\ *syntax*
- Choose style of code to emit from X86 backend:
- .. code-block:: perl
- =att: Emit AT&T-style assembly
- =intel: Emit Intel-style assembly
- EXIT STATUS
- -----------
- If **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
- --------
- llc|llc
|