summaryrefslogtreecommitdiff
path: root/docs/CommandGuide
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2015-12-30 11:46:15 +0000
committerDimitry Andric <dim@FreeBSD.org>2015-12-30 11:46:15 +0000
commitdd58ef019b700900793a1eb48b52123db01b654e (patch)
treefcfbb4df56a744f4ddc6122c50521dd3f1c5e196 /docs/CommandGuide
parent2fe5752e3a7c345cdb59e869278d36af33c13fa4 (diff)
Notes
Diffstat (limited to 'docs/CommandGuide')
-rw-r--r--docs/CommandGuide/index.rst1
-rw-r--r--docs/CommandGuide/lit.rst5
-rw-r--r--docs/CommandGuide/llc.rst6
-rw-r--r--docs/CommandGuide/lli.rst168
-rw-r--r--docs/CommandGuide/llvm-lib.rst31
-rw-r--r--docs/CommandGuide/llvm-profdata.rst62
-rw-r--r--docs/CommandGuide/llvm-symbolizer.rst16
7 files changed, 159 insertions, 130 deletions
diff --git a/docs/CommandGuide/index.rst b/docs/CommandGuide/index.rst
index ed18cd048aa5..46db57f1c845 100644
--- a/docs/CommandGuide/index.rst
+++ b/docs/CommandGuide/index.rst
@@ -21,6 +21,7 @@ Basic Commands
lli
llvm-link
llvm-ar
+ llvm-lib
llvm-nm
llvm-config
llvm-diff
diff --git a/docs/CommandGuide/lit.rst b/docs/CommandGuide/lit.rst
index e820eef2faff..0ec14bb2236e 100644
--- a/docs/CommandGuide/lit.rst
+++ b/docs/CommandGuide/lit.rst
@@ -80,6 +80,11 @@ OUTPUT OPTIONS
Show more information on test failures, for example the entire test output
instead of just the test result.
+.. option:: -a, --show-all
+
+ Show more information about all tests, for example the entire test
+ commandline and output.
+
.. option:: --no-progress-bar
Do not use curses based progress bar.
diff --git a/docs/CommandGuide/llc.rst b/docs/CommandGuide/llc.rst
index 8d5c9ce8f8a1..5094259f9f95 100644
--- a/docs/CommandGuide/llc.rst
+++ b/docs/CommandGuide/llc.rst
@@ -127,6 +127,12 @@ End-user Options
implements an LLVM target. This will permit the target name to be used with
the :option:`-march` option so that code can be generated for that target.
+.. option:: -meabi=[default|gnu|4|5]
+
+ Specify which EABI version should conform to. Valid EABI versions are *gnu*,
+ *4* and *5*. Default value (*default*) depends on the triple.
+
+
Tuning/Configuration Options
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/docs/CommandGuide/lli.rst b/docs/CommandGuide/lli.rst
index 502fbd609353..9da13ee47e0e 100644
--- a/docs/CommandGuide/lli.rst
+++ b/docs/CommandGuide/lli.rst
@@ -1,172 +1,127 @@
lli - directly execute programs from LLVM bitcode
=================================================
-
SYNOPSIS
--------
-
-**lli** [*options*] [*filename*] [*program args*]
-
+: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.
-**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.
+: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.
-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.
The optional *args* specified on the command line are passed to the program as
arguments.
-
GENERAL OPTIONS
---------------
-
-
-**-fake-argv0**\ =\ *executable*
+.. option:: -fake-argv0=executable
Override the ``argv[0]`` value passed into the executing program.
-
-
-**-force-interpreter**\ =\ *{false,true}*
+.. 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.
-
-
-**-help**
+.. option:: -help
Print a summary of command line options.
+.. option:: -load=pluginfilename
-
-**-load**\ =\ *pluginfilename*
-
- Causes **lli** to load the plugin (shared object) named *pluginfilename* and use
+ Causes :program:`lli` to load the plugin (shared object) named *pluginfilename* and use
it for optimization.
-
-
-**-stats**
+.. option:: -stats
Print statistics from the code-generation passes. This is only meaningful for
the just-in-time compiler, at present.
-
-
-**-time-passes**
+.. option:: -time-passes
Record the amount of time needed for each code-generation pass and print it to
standard error.
+.. option:: -version
-
-**-version**
-
- Print out the version of **lli** and exit without doing anything else.
-
-
-
+ Print out the version of :program:`lli` and exit without doing anything else.
TARGET OPTIONS
--------------
-
-
-**-mtriple**\ =\ *target triple*
+.. 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.
-
-
-**-march**\ =\ *arch*
+.. 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.
-
-
-**-mcpu**\ =\ *cpuname*
+.. 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**
-
-
-**-mattr**\ =\ *a1,+a2,-a3,...*
+.. 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
----------------------
-
-
-**-disable-excess-fp-precision**
+.. option:: -disable-excess-fp-precision
Disable optimizations that may increase floating point precision.
-
-
-**-enable-no-infs-fp-math**
+.. option:: -enable-no-infs-fp-math
Enable optimizations that assume no Inf values.
-
-
-**-enable-no-nans-fp-math**
+.. option:: -enable-no-nans-fp-math
Enable optimizations that assume no NAN values.
+.. option:: -enable-unsafe-fp-math
-
-**-enable-unsafe-fp-math**
-
- Causes **lli** to enable optimizations that may decrease floating point
+ Causes :program:`lli` to enable optimizations that may decrease floating point
precision.
+.. option:: -soft-float
-
-**-soft-float**
-
- Causes **lli** to generate software floating point library calls instead of
+ Causes :program:`lli` to generate software floating point library calls instead of
equivalent hardware instructions.
-
-
-
CODE GENERATION OPTIONS
-----------------------
-
-
-**-code-model**\ =\ *model*
+.. option:: -code-model=model
Choose the code model from:
-
.. code-block:: perl
default: Target default code model
@@ -175,42 +130,30 @@ CODE GENERATION OPTIONS
medium: Medium code model
large: Large code model
-
-
-
-**-disable-post-RA-scheduler**
+.. option:: -disable-post-RA-scheduler
Disable scheduling after register allocation.
-
-
-**-disable-spill-fusing**
+.. option:: -disable-spill-fusing
Disable fusing of spill code into instructions.
-
-
-**-jit-enable-eh**
+.. option:: -jit-enable-eh
Exception handling should be enabled in the just-in-time compiler.
-
-
-**-join-liveintervals**
+.. option:: -join-liveintervals
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.
-
-
-
-**-pre-RA-sched**\ =\ *scheduler*
+.. option:: -pre-RA-sched=scheduler
Instruction schedulers available (before register allocation):
-
.. code-block:: perl
=default: Best scheduler for the target
@@ -221,74 +164,51 @@ CODE GENERATION OPTIONS
=list-tdrr: Top-down register reduction list scheduling
=list-td: Top-down list scheduler -print-machineinstrs - Print generated machine code
-
-
-
-**-regalloc**\ =\ *allocator*
+.. 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
-
-
-
-**-relocation-model**\ =\ *model*
+.. 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
-
-
-
-**-spiller**
+.. option:: -spiller
Spiller to use (default=local)
-
.. code-block:: perl
=simple: simple spiller
=local: local spiller
-
-
-
-**-x86-asm-syntax**\ =\ *syntax*
+.. 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 **lli** fails to load the program, it will exit with an exit code of 1.
+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
--------
-
-llc|llc
+:program:`llc`
diff --git a/docs/CommandGuide/llvm-lib.rst b/docs/CommandGuide/llvm-lib.rst
new file mode 100644
index 000000000000..ecd0a7db7e37
--- /dev/null
+++ b/docs/CommandGuide/llvm-lib.rst
@@ -0,0 +1,31 @@
+llvm-lib - LLVM lib.exe compatible library tool
+===============================================
+
+
+SYNOPSIS
+--------
+
+
+**llvm-lib** [/libpath:<path>] [/out:<output>] [/llvmlibthin]
+[/ignore] [/machine] [/nologo] [files...]
+
+
+DESCRIPTION
+-----------
+
+
+The **llvm-lib** command is intended to be a ``lib.exe`` compatible
+tool. See https://msdn.microsoft.com/en-us/library/7ykb2k5f for the
+general description.
+
+**llvm-lib** has the following extensions:
+
+* Bitcode files in symbol tables.
+ **llvm-lib** includes symbols from both bitcode files and regular
+ object files in the symbol table.
+
+* Creating thin archives.
+ The /llvmlibthin option causes **llvm-lib** to create thin archive
+ that contain only the symbol table and the header for the various
+ members. These files are much smaller, but are not compatible with
+ link.exe (lld can handle them).
diff --git a/docs/CommandGuide/llvm-profdata.rst b/docs/CommandGuide/llvm-profdata.rst
index 7053b7fa710e..74fe4ee9d219 100644
--- a/docs/CommandGuide/llvm-profdata.rst
+++ b/docs/CommandGuide/llvm-profdata.rst
@@ -28,7 +28,7 @@ MERGE
SYNOPSIS
^^^^^^^^
-:program:`llvm-profdata merge` [*options*] [*filenames...*]
+:program:`llvm-profdata merge` [*options*] [*filename...*]
DESCRIPTION
^^^^^^^^^^^
@@ -37,6 +37,14 @@ DESCRIPTION
generated by PGO instrumentation and merges them together into a single
indexed profile data file.
+By default profile data is merged without modification. This means that the
+relative importance of each input file is proportional to the number of samples
+or counts it contains. In general, the input from a longer training run will be
+interpreted as relatively more important than a shorter run. Depending on the
+nature of the training runs it may be useful to adjust the weight given to each
+input file by using the ``-weighted-input`` option.
+
+
OPTIONS
^^^^^^^
@@ -49,28 +57,63 @@ OPTIONS
Specify the output file name. *Output* cannot be ``-`` as the resulting
indexed profile data can't be written to standard output.
+.. option:: -weighted-input=weight,filename
+
+ Specify an input file name along with a weight. The profile counts of the input
+ file will be scaled (multiplied) by the supplied ``weight``, where where ``weight``
+ is a decimal integer >= 1. Input files specified without using this option are
+ assigned a default weight of 1. Examples are shown below.
+
.. option:: -instr (default)
Specify that the input profile is an instrumentation-based profile.
.. option:: -sample
- Specify that the input profile is a sample-based profile. When using
- sample-based profiles, the format of the generated file can be generated
- in one of three ways:
+ Specify that the input profile is a sample-based profile.
+
+ The format of the generated file can be generated in one of three ways:
.. option:: -binary (default)
- Emit the profile using a binary encoding.
+ Emit the profile using a binary encoding. For instrumentation-based profile
+ the output format is the indexed binary format.
.. option:: -text
- Emit the profile in text mode.
+ Emit the profile in text mode. This option can also be used with both
+ sample-based and instrumentation-based profile. When this option is used
+ the profile will be dumped in the text format that is parsable by the profile
+ reader.
.. option:: -gcc
Emit the profile using GCC's gcov format (Not yet supported).
+EXAMPLES
+^^^^^^^^
+Basic Usage
++++++++++++
+Merge three profiles:
+
+::
+
+ llvm-profdata merge foo.profdata bar.profdata baz.profdata -output merged.profdata
+
+Weighted Input
+++++++++++++++
+The input file `foo.profdata` is especially important, multiply its counts by 10:
+
+::
+
+ llvm-profdata merge -weighted-input=10,foo.profdata bar.profdata baz.profdata -output merged.profdata
+
+Exactly equivalent to the previous invocation (explicit form; useful for programmatic invocation):
+
+::
+
+ llvm-profdata merge -weighted-input=10,foo.profdata -weighted-input=1,bar.profdata -weighted-input=1,baz.profdata -output merged.profdata
+
.. program:: llvm-profdata show
.. _profdata-show:
@@ -121,6 +164,13 @@ OPTIONS
Specify that the input profile is an instrumentation-based profile.
+.. option:: -text
+
+ Instruct the profile dumper to show profile counts in the text format of the
+ instrumentation-based profile data representation. By default, the profile
+ information is dumped in a more human readable form (also in text) with
+ annotations.
+
.. option:: -sample
Specify that the input profile is a sample-based profile.
diff --git a/docs/CommandGuide/llvm-symbolizer.rst b/docs/CommandGuide/llvm-symbolizer.rst
index 96720e633f2f..ec4178e4e7ab 100644
--- a/docs/CommandGuide/llvm-symbolizer.rst
+++ b/docs/CommandGuide/llvm-symbolizer.rst
@@ -56,6 +56,14 @@ EXAMPLE
foo(int)
/tmp/a.cc:12
+ $cat addr.txt
+ 0x40054d
+ $llvm-symbolizer -inlining -print-address -pretty-print -obj=addr.exe < addr.txt
+ 0x40054d: inc at /tmp/x.c:3:3
+ (inlined by) main at /tmp/x.c:9:0
+ $llvm-symbolizer -inlining -pretty-print -obj=addr.exe < addr.txt
+ inc at /tmp/x.c:3:3
+ (inlined by) main at /tmp/x.c:9:0
OPTIONS
-------
@@ -98,6 +106,14 @@ OPTIONS
location, look for the debug info at the .dSYM path provided via the
``-dsym-hint`` flag. This flag can be used multiple times.
+.. option:: -print-address
+
+ Print address before the source code location. Defaults to false.
+
+.. option:: -pretty-print
+
+ Print human readable output. If ``-inlining`` is specified, enclosing scope is
+ prefixed by (inlined by). Refer to listed examples.
EXIT STATUS
-----------