diff options
Diffstat (limited to 'gnu/llvm/docs/CommandGuide/lli.rst')
| -rw-r--r-- | gnu/llvm/docs/CommandGuide/lli.rst | 214 |
1 files changed, 214 insertions, 0 deletions
diff --git a/gnu/llvm/docs/CommandGuide/lli.rst b/gnu/llvm/docs/CommandGuide/lli.rst new file mode 100644 index 00000000000..9da13ee47e0 --- /dev/null +++ b/gnu/llvm/docs/CommandGuide/lli.rst @@ -0,0 +1,214 @@ +lli - directly execute programs from LLVM bitcode +================================================= + +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:: perl + + default: Target default 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:: 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 + +.. option:: -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 + +.. option:: -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 + +.. option:: -spiller + + Spiller to use (default=local) + + .. code-block:: perl + + =simple: simple spiller + =local: local spiller + +.. option:: -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 :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 +-------- + +:program:`llc` |
