=pod

=head1 NAME

opt - LLVM optimizer

=head1 SYNOPSIS

B<opt> [I<options>] [I<filename>]

=head1 DESCRIPTION

The B<opt> command is the modular LLVM optimizer and analyzer.  It takes LLVM 
bytecode as input, runs the specified optimizations or analyses on it, and then
outputs the optimized LLVM bytecode or the analysis results.  The function of 
B<opt> depends on whether the B<-analyze> option is given. 

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

If I<filename> is omitted from the command line or is I<->, B<opt> reads its
input from standard input. The input must be an LLVM bytecode file.

If an output filename is not specified with the B<-o> option, B<opt>
writes its output to the standard output.

=head1 OPTIONS

=over

=item B<-f>

Force overwrite.  Normally, B<opt> will refuse to overwrite an
output file that already exists.  With this option, B<opt> will
overwrite the output file and replace it with new bytecode.

=item B<-help>

Print a summary of command line options. 

=item B<-o> I<filename>

Specify the output filename.

=item B<-{passname}>

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

=item B<-std-compile-opts>

This is short hand for a standard list of I<compile time optimization> passes.
This is typically used to optimize the output from the llvm-gcc front end. It
might be useful for other front end compilers as well. To discover the full set
of options available, use the following command:

   llvm-as < /dev/null | opt -std-compile-opts -disable-output -debug-pass=Arguments

=item B<-disable-inlining>

This option is only meaningful when B<-std-compile-opts> is given. It simply
removes the inlining pass from the standard list.

=item B<-disable-opt>

This option is only meaningful when B<-std-compile-opts> is given. It disables
most, but not all, of the B<-std-compile-opts>. The ones that remain are
B<-verify>, B<-lower-setjmp>, and B<-funcresolve>.

=item B<-strip-debug>

This option causes opt to strip debug information from the module before 
applying other optimizations. It is essentially the same as B<-strip> but it
ensures that stripping of debug information is done first.

=item B<-verify-each>

This option causes opt to add a verify pass after every pass otherwise specified
on the command line (including B<-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. The combination of B<-std-compile-opts> and B<-verify-each>
can quickly track down this kind of problem.

=item B<-profile-info-file> I<filename>

Specify the name of the file loaded by the -profile-loader option.

=item B<-stats>

Print statistics.

=item B<-time-passes>

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

=item B<-debug>

If this is a debug build, this option will enable debug printouts
from passes which use the I<DEBUG()> macro.  See the B<LLVM Programmer's
Manual>, section I<#DEBUG> for more information.

=item B<-load>=I<plugin>

Load the dynamic object I<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 B<-help> and B<-load> options together. For example:

   opt -load=plugin.so -help

=item B<-p>

Print module after each transformation.

=back

=head1 EXIT STATUS

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

=head1 AUTHORS

Maintained by the LLVM Team (L<http://llvm.org>).

=cut
