Provided by: llvm-8_8.0.1-9_amd64 bug

NAME

       opt - LLVM optimizer

SYNOPSIS

       opt [options] [filename]

DESCRIPTION

       The  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 opt depends on whether the -analyze option is given.

       When -analyze is specified, 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,  opt  attempts  to  produce an optimized output file.  The optimizations
       available via opt depend upon what libraries were linked into it as well as any additional libraries that
       have  been  loaded  with  the -load option.  Use the -help option to determine what optimizations you can
       use.

       If filename is omitted from the command line or is “-“, 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 -o option, opt writes its output to the standard output.

OPTIONS

       -f     Enable  binary  output on terminals.  Normally, opt will refuse to write raw bitcode output if the
              output stream is a terminal.  With this option, opt will  write  raw  bitcode  regardless  of  the
              output device.

       -help  Print a summary of command line options.

       -o <filename>
              Specify the output filename.

       -S     Write output in LLVM intermediate language (instead of bitcode).

       -{passname}
              opt  provides  the ability to run any of LLVM’s optimization or analysis passes in any order.  The
              -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).

       -disable-inlining
              This option simply removes the inlining pass from the standard list.

       -disable-opt
              This option is only meaningful when -std-link-opts is given.  It disables most passes.

       -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.

       -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.

       -stats Print statistics.

       -time-passes
              Record the amount of time needed for each pass and print it to standard error.

       -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, section #DEBUG for more information.

       -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  -help  and  -load  options
              together.  For example:

                 opt -load=plugin.so -help

       -p     Print module after each transformation.

EXIT STATUS

       If opt succeeds, it will exit with 0.  Otherwise, if an error occurs, it will exit with a non-zero value.

AUTHOR

       Maintained by the LLVM Team (https://llvm.org/).

COPYRIGHT

       2003-2020, LLVM Project