123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- opt - LLVM optimizer
- ====================
- .. program:: opt
- SYNOPSIS
- --------
- :program:`opt` [*options*] [*filename*]
- DESCRIPTION
- -----------
- The :program:`opt` command is the modular LLVM optimizer and analyzer. It
- takes LLVM source files as input, runs the specified optimizations or analyses
- on it, and then outputs the optimized file or the analysis results. The
- function of :program:`opt` depends on whether the `-analyze` option is
- given.
- When `-analyze` is specified, :program:`opt` performs various analyses
- of the input source. It will usually print the results on standard output, but
- in a few cases, it will print output to standard error or generate a file with
- the analysis output, which is usually done when the output is meant for another
- program.
- While `-analyze` is *not* given, :program:`opt` attempts to produce an
- optimized output file. The optimizations available via :program:`opt` depend
- upon what libraries were linked into it as well as any additional libraries
- that have been loaded with the :option:`-load` option. Use the :option:`-help`
- option to determine what optimizations you can use.
- If ``filename`` is omitted from the command line or is "``-``", :program:`opt`
- reads its input from standard input. Inputs can be in either the LLVM assembly
- language format (``.ll``) or the LLVM bitcode format (``.bc``).
- If an output filename is not specified with the :option:`-o` option,
- :program:`opt` writes its output to the standard output.
- OPTIONS
- -------
- .. option:: -f
- Enable binary output on terminals. Normally, :program:`opt` will refuse to
- write raw bitcode output if the output stream is a terminal. With this option,
- :program:`opt` will write raw bitcode regardless of the output device.
- .. option:: -help
- Print a summary of command line options.
- .. option:: -o <filename>
- Specify the output filename.
- .. option:: -S
- Write output in LLVM intermediate language (instead of bitcode).
- .. option:: -{passname}
- :program:`opt` provides the ability to run any of LLVM's optimization or
- analysis passes in any order. The :option:`-help` option lists all the passes
- available. The order in which the options occur on the command line are the
- order in which they are executed (within pass constraints).
- .. option:: -disable-inlining
- This option simply removes the inlining pass from the standard list.
- .. option:: -disable-opt
- This option is only meaningful when `-std-link-opts` is given. It
- disables most passes.
- .. option:: -strip-debug
- This option causes opt to strip debug information from the module before
- applying other optimizations. It is essentially the same as `-strip`
- but it ensures that stripping of debug information is done first.
- .. option:: -verify-each
- This option causes opt to add a verify pass after every pass otherwise
- specified on the command line (including `-verify`). This is useful
- for cases where it is suspected that a pass is creating an invalid module but
- it is not clear which pass is doing it.
- .. option:: -stats
- Print statistics.
- .. option:: -time-passes
- Record the amount of time needed for each pass and print it to standard
- error.
- .. option:: -debug
- If this is a debug build, this option will enable debug printouts from passes
- which use the ``LLVM_DEBUG()`` macro. See the `LLVM Programmer's Manual
- <../ProgrammersManual.html>`_, section ``#DEBUG`` for more information.
- .. option:: -load=<plugin>
- Load the dynamic object ``plugin``. This object should register new
- optimization or analysis passes. Once loaded, the object will add new command
- line options to enable various optimizations or analyses. To see the new
- complete list of optimizations, use the :option:`-help` and :option:`-load`
- options together. For example:
- .. code-block:: sh
- opt -load=plugin.so -help
- .. option:: -p
- Print module after each transformation.
- EXIT STATUS
- -----------
- If :program:`opt` succeeds, it will exit with 0. Otherwise, if an error
- occurs, it will exit with a non-zero value.
|