Provided by: llvm-12_12.0.1-19ubuntu3_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-2022, LLVM Project