mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-08 19:25:47 +00:00
Improving lli documentation
Too many people hope lli would act as an emulator when it's actually just a tool to help prototype IR code and test the JIT compiler. This commit makes that fact explicit in the documentation It also migrates the old style bold/italic doc tags to the preferred meta tags (.. option::, :program:, etc). No errors when generating the documents, visual inspection in the HTML result doesn't show any major difference, apart from the slight style change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243401 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1,172 +1,127 @@
|
|||||||
lli - directly execute programs from LLVM bitcode
|
lli - directly execute programs from LLVM bitcode
|
||||||
=================================================
|
=================================================
|
||||||
|
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
:program:`lli` [*options*] [*filename*] [*program args*]
|
||||||
**lli** [*options*] [*filename*] [*program args*]
|
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTION
|
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.
|
||||||
|
|
||||||
**lli** directly executes programs in LLVM bitcode format. It takes a program
|
:program:`lli` is *not* an emulator. It will not execute IR of different architectures
|
||||||
in LLVM bitcode format and executes it using a just-in-time compiler, if one is
|
and it can only interpret (or JIT-compile) for the host architecture.
|
||||||
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
|
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.
|
program from standard input.
|
||||||
|
|
||||||
The optional *args* specified on the command line are passed to the program as
|
The optional *args* specified on the command line are passed to the program as
|
||||||
arguments.
|
arguments.
|
||||||
|
|
||||||
|
|
||||||
GENERAL OPTIONS
|
GENERAL OPTIONS
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
|
.. option:: -fake-argv0=executable
|
||||||
|
|
||||||
**-fake-argv0**\ =\ *executable*
|
|
||||||
|
|
||||||
Override the ``argv[0]`` value passed into the executing program.
|
Override the ``argv[0]`` value passed into the executing program.
|
||||||
|
|
||||||
|
.. option:: -force-interpreter={false,true}
|
||||||
|
|
||||||
**-force-interpreter**\ =\ *{false,true}*
|
|
||||||
|
|
||||||
If set to true, use the interpreter even if a just-in-time compiler is available
|
If set to true, use the interpreter even if a just-in-time compiler is available
|
||||||
for this architecture. Defaults to false.
|
for this architecture. Defaults to false.
|
||||||
|
|
||||||
|
.. option:: -help
|
||||||
|
|
||||||
**-help**
|
|
||||||
|
|
||||||
Print a summary of command line options.
|
Print a summary of command line options.
|
||||||
|
|
||||||
|
.. option:: -load=pluginfilename
|
||||||
|
|
||||||
|
Causes :program:`lli` to load the plugin (shared object) named *pluginfilename* and use
|
||||||
**-load**\ =\ *pluginfilename*
|
|
||||||
|
|
||||||
Causes **lli** to load the plugin (shared object) named *pluginfilename* and use
|
|
||||||
it for optimization.
|
it for optimization.
|
||||||
|
|
||||||
|
.. option:: -stats
|
||||||
|
|
||||||
**-stats**
|
|
||||||
|
|
||||||
Print statistics from the code-generation passes. This is only meaningful for
|
Print statistics from the code-generation passes. This is only meaningful for
|
||||||
the just-in-time compiler, at present.
|
the just-in-time compiler, at present.
|
||||||
|
|
||||||
|
.. option:: -time-passes
|
||||||
|
|
||||||
**-time-passes**
|
|
||||||
|
|
||||||
Record the amount of time needed for each code-generation pass and print it to
|
Record the amount of time needed for each code-generation pass and print it to
|
||||||
standard error.
|
standard error.
|
||||||
|
|
||||||
|
.. option:: -version
|
||||||
|
|
||||||
|
Print out the version of :program:`lli` and exit without doing anything else.
|
||||||
**-version**
|
|
||||||
|
|
||||||
Print out the version of **lli** and exit without doing anything else.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TARGET OPTIONS
|
TARGET OPTIONS
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
|
.. option:: -mtriple=target triple
|
||||||
|
|
||||||
**-mtriple**\ =\ *target triple*
|
|
||||||
|
|
||||||
Override the target triple specified in the input bitcode file with the
|
Override the target triple specified in the input bitcode file with the
|
||||||
specified string. This may result in a crash if you pick an
|
specified string. This may result in a crash if you pick an
|
||||||
architecture which is not compatible with the current system.
|
architecture which is not compatible with the current system.
|
||||||
|
|
||||||
|
.. option:: -march=arch
|
||||||
|
|
||||||
**-march**\ =\ *arch*
|
|
||||||
|
|
||||||
Specify the architecture for which to generate assembly, overriding the target
|
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
|
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
|
valid architectures. By default this is inferred from the target triple or
|
||||||
autodetected to the current architecture.
|
autodetected to the current architecture.
|
||||||
|
|
||||||
|
.. option:: -mcpu=cpuname
|
||||||
|
|
||||||
**-mcpu**\ =\ *cpuname*
|
|
||||||
|
|
||||||
Specify a specific chip in the current architecture to generate code for.
|
Specify a specific chip in the current architecture to generate code for.
|
||||||
By default this is inferred from the target triple and autodetected to
|
By default this is inferred from the target triple and autodetected to
|
||||||
the current architecture. For a list of available CPUs, use:
|
the current architecture. For a list of available CPUs, use:
|
||||||
**llvm-as < /dev/null | llc -march=xyz -mcpu=help**
|
**llvm-as < /dev/null | llc -march=xyz -mcpu=help**
|
||||||
|
|
||||||
|
.. option:: -mattr=a1,+a2,-a3,...
|
||||||
|
|
||||||
**-mattr**\ =\ *a1,+a2,-a3,...*
|
|
||||||
|
|
||||||
Override or control specific attributes of the target, such as whether SIMD
|
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
|
operations are enabled or not. The default set of attributes is set by the
|
||||||
current CPU. For a list of available attributes, use:
|
current CPU. For a list of available attributes, use:
|
||||||
**llvm-as < /dev/null | llc -march=xyz -mattr=help**
|
**llvm-as < /dev/null | llc -march=xyz -mattr=help**
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
FLOATING POINT OPTIONS
|
FLOATING POINT OPTIONS
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
|
.. option:: -disable-excess-fp-precision
|
||||||
|
|
||||||
**-disable-excess-fp-precision**
|
|
||||||
|
|
||||||
Disable optimizations that may increase floating point precision.
|
Disable optimizations that may increase floating point precision.
|
||||||
|
|
||||||
|
.. option:: -enable-no-infs-fp-math
|
||||||
|
|
||||||
**-enable-no-infs-fp-math**
|
|
||||||
|
|
||||||
Enable optimizations that assume no Inf values.
|
Enable optimizations that assume no Inf values.
|
||||||
|
|
||||||
|
.. option:: -enable-no-nans-fp-math
|
||||||
|
|
||||||
**-enable-no-nans-fp-math**
|
|
||||||
|
|
||||||
Enable optimizations that assume no NAN values.
|
Enable optimizations that assume no NAN values.
|
||||||
|
|
||||||
|
.. option:: -enable-unsafe-fp-math
|
||||||
|
|
||||||
|
Causes :program:`lli` to enable optimizations that may decrease floating point
|
||||||
**-enable-unsafe-fp-math**
|
|
||||||
|
|
||||||
Causes **lli** to enable optimizations that may decrease floating point
|
|
||||||
precision.
|
precision.
|
||||||
|
|
||||||
|
.. option:: -soft-float
|
||||||
|
|
||||||
|
Causes :program:`lli` to generate software floating point library calls instead of
|
||||||
**-soft-float**
|
|
||||||
|
|
||||||
Causes **lli** to generate software floating point library calls instead of
|
|
||||||
equivalent hardware instructions.
|
equivalent hardware instructions.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CODE GENERATION OPTIONS
|
CODE GENERATION OPTIONS
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
.. option:: -code-model=model
|
||||||
|
|
||||||
**-code-model**\ =\ *model*
|
|
||||||
|
|
||||||
Choose the code model from:
|
Choose the code model from:
|
||||||
|
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
default: Target default code model
|
default: Target default code model
|
||||||
@@ -175,42 +130,30 @@ CODE GENERATION OPTIONS
|
|||||||
medium: Medium code model
|
medium: Medium code model
|
||||||
large: Large code model
|
large: Large code model
|
||||||
|
|
||||||
|
.. option:: -disable-post-RA-scheduler
|
||||||
|
|
||||||
|
|
||||||
**-disable-post-RA-scheduler**
|
|
||||||
|
|
||||||
Disable scheduling after register allocation.
|
Disable scheduling after register allocation.
|
||||||
|
|
||||||
|
.. option:: -disable-spill-fusing
|
||||||
|
|
||||||
**-disable-spill-fusing**
|
|
||||||
|
|
||||||
Disable fusing of spill code into instructions.
|
Disable fusing of spill code into instructions.
|
||||||
|
|
||||||
|
.. option:: -jit-enable-eh
|
||||||
|
|
||||||
**-jit-enable-eh**
|
|
||||||
|
|
||||||
Exception handling should be enabled in the just-in-time compiler.
|
Exception handling should be enabled in the just-in-time compiler.
|
||||||
|
|
||||||
|
.. option:: -join-liveintervals
|
||||||
|
|
||||||
**-join-liveintervals**
|
|
||||||
|
|
||||||
Coalesce copies (default=true).
|
Coalesce copies (default=true).
|
||||||
|
|
||||||
|
.. option:: -nozero-initialized-in-bss
|
||||||
|
|
||||||
|
Don't place zero-initialized symbols into the BSS section.
|
||||||
|
|
||||||
**-nozero-initialized-in-bss** Don't place zero-initialized symbols into the BSS section.
|
.. option:: -pre-RA-sched=scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
**-pre-RA-sched**\ =\ *scheduler*
|
|
||||||
|
|
||||||
Instruction schedulers available (before register allocation):
|
Instruction schedulers available (before register allocation):
|
||||||
|
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
=default: Best scheduler for the target
|
=default: Best scheduler for the target
|
||||||
@@ -221,74 +164,51 @@ CODE GENERATION OPTIONS
|
|||||||
=list-tdrr: Top-down register reduction list scheduling
|
=list-tdrr: Top-down register reduction list scheduling
|
||||||
=list-td: Top-down list scheduler -print-machineinstrs - Print generated machine code
|
=list-td: Top-down list scheduler -print-machineinstrs - Print generated machine code
|
||||||
|
|
||||||
|
.. option:: -regalloc=allocator
|
||||||
|
|
||||||
|
|
||||||
**-regalloc**\ =\ *allocator*
|
|
||||||
|
|
||||||
Register allocator to use (default=linearscan)
|
Register allocator to use (default=linearscan)
|
||||||
|
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
=bigblock: Big-block register allocator
|
=bigblock: Big-block register allocator
|
||||||
=linearscan: linear scan register allocator =local - local register allocator
|
=linearscan: linear scan register allocator =local - local register allocator
|
||||||
=simple: simple register allocator
|
=simple: simple register allocator
|
||||||
|
|
||||||
|
.. option:: -relocation-model=model
|
||||||
|
|
||||||
|
|
||||||
**-relocation-model**\ =\ *model*
|
|
||||||
|
|
||||||
Choose relocation model from:
|
Choose relocation model from:
|
||||||
|
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
=default: Target default relocation model
|
=default: Target default relocation model
|
||||||
=static: Non-relocatable code =pic - Fully relocatable, position independent code
|
=static: Non-relocatable code =pic - Fully relocatable, position independent code
|
||||||
=dynamic-no-pic: Relocatable external references, non-relocatable code
|
=dynamic-no-pic: Relocatable external references, non-relocatable code
|
||||||
|
|
||||||
|
.. option:: -spiller
|
||||||
|
|
||||||
|
|
||||||
**-spiller**
|
|
||||||
|
|
||||||
Spiller to use (default=local)
|
Spiller to use (default=local)
|
||||||
|
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
=simple: simple spiller
|
=simple: simple spiller
|
||||||
=local: local spiller
|
=local: local spiller
|
||||||
|
|
||||||
|
.. option:: -x86-asm-syntax=syntax
|
||||||
|
|
||||||
|
|
||||||
**-x86-asm-syntax**\ =\ *syntax*
|
|
||||||
|
|
||||||
Choose style of code to emit from X86 backend:
|
Choose style of code to emit from X86 backend:
|
||||||
|
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
=att: Emit AT&T-style assembly
|
=att: Emit AT&T-style assembly
|
||||||
=intel: Emit Intel-style assembly
|
=intel: Emit Intel-style assembly
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
EXIT STATUS
|
EXIT STATUS
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
If :program:`lli` fails to load the program, it will exit with an exit code of 1.
|
||||||
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.
|
Otherwise, it will return the exit code of the program it executes.
|
||||||
|
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
:program:`llc`
|
||||||
llc|llc
|
|
||||||
|
Reference in New Issue
Block a user