<tt>bugpoint</tt> deletes any individual LLVM instructions whose absence does
not eliminate the failure. At the end, <tt>bugpoint</tt> should tell you what
passes crash, give you a bytecode file, and give you instructions on how to
-reproduce the failure with <tt>opt</tt>, <tt>analyze</tt>, or <tt>llc</tt>.</p>
+reproduce the failure with <tt>opt</tt> or <tt>llc</tt>.</p>
</div>
+++ /dev/null
-=pod
-
-=head1 NAME
-
-analyze - LLVM program analyzer
-
-=head1 SYNOPSIS
-
-B<analyze> [I<options>] [I<filename>]
-
-=head1 DESCRIPTION
-
-The B<analyze> command performs various analysis of LLVM assembly
-code or 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.
-
-If filename is omitted or is I<->, B<analyze> reads its input from
-standard input. It first attempts to interpret its input as LLVM
-bytecode. If it encounters an error, it then attempts to parse the
-input as LLVM assembly language.
-
-=head1 OPTIONS
-
-=over
-
-=item B<-help>
-
-Print a summary of command line options.
-
-=item B<-q>
-
-Quiet mode. With this option, analysis pass names are not printed.
-
-=item B<-load> I<plugin>
-
-Load the specified dynamic object with name I<plugin>. This file
-should contain additional analysis passes that register themselves
-with the B<analyze> program after being loaded.
-
-After being loaded, additional command line options are made
-available for running the passes made available by I<plugin>. Use
-B<analyze -load> I<plugin> B<-help> to see the new list of available
-analysis passes.
-
-=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.
-
-=back
-
-=head1 EXIT STATUS
-
-If B<analyze> succeeds, it will exit with 0. Otherwise, if an error
-occurs, it will exit with a non-zero value.
-
-=head1 SEE ALSO
-
-L<opt|opt>
-
-=head1 AUTHORS
-
-Maintained by the LLVM Team (L<http://llvm.org>).
-
-=cut
=head1 SEE ALSO
-L<opt|opt>, L<analyze|analyze>
+L<opt|opt>
=head1 AUTHOR
<li><a href="html/llvm-link.html"><b>llvm-link</b></a> -
link several bytecode files into one</li>
-<li><a href="html/analyze.html"><b>analyze</b></a> -
- run LLVM analyses on a bytecode file and print the results</li>
-
<li><a href="html/llvm-ar.html"><b>llvm-ar</b></a> -
archive bytecode files</li>
=head1 DESCRIPTION
-The B<opt> command is the modular LLVM optimizer. It takes LLVM
-bytecode as input, runs the specified optimizations on it, and then
-outputs the optimized LLVM bytecode.
-
-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 no filename is specified on the command line, B<opt> reads its
-input from standard input.
+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.
=item B<-load>=I<plugin>
-Load the dynamic object I<plugin>. This object should register new
-optimization passes. Once loaded, the object will add new command line
-options to enable various optimizations. To see the new complete list
-of optimizations, use the B<-help> and B<-load> options together:
+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:
=over
If B<opt> succeeds, it will exit with 0. Otherwise, if an error
occurs, it will exit with a non-zero value.
-=head1 SEE ALSO
-
-L<analyze|analyze>
-
=head1 AUTHORS
Maintained by the LLVM Team (L<http://llvm.org>).
<p>First, LLVM comes in two pieces. The first piece is the LLVM suite. This
contains all of the tools, libraries, and header files needed to use the low
level virtual machine. It contains an assembler, disassembler, bytecode
-analyzer, and bytecode optimizer. It also contains a test suite that can be
+analyzer and bytecode optimizer. It also contains a test suite that can be
used to test the LLVM tools and the GCC front end.</p>
<p>The second piece is the GCC front end. This component provides a version of
information is in the <a href="CommandGuide/index.html">Command Guide</a>.</p>
<dl>
- <dt><tt><b>analyze</b></tt></dt>
- <dd><tt>analyze</tt> is used to run a specific
- analysis on an input LLVM bytecode file and print out the results. It is
- primarily useful for debugging analyses, or familiarizing yourself with
- what an analysis does.</dd>
<dt><tt><b>bugpoint</b></tt></dt>
<dd><tt>bugpoint</tt> is used to debug
</dd>
<dt><tt><b>opt</b></tt></dt>
- <dd><tt>opt</tt> reads LLVM bytecode, applies a
- series of LLVM to LLVM transformations (which are specified on the command
- line), and then outputs the resultant bytecode. The '<tt>opt --help</tt>'
- command is a good way to get a list of the program transformations
- available in LLVM.</dd>
+ <dd><tt>opt</tt> reads LLVM bytecode, applies a series of LLVM to LLVM
+ transformations (which are specified on the command line), and then outputs
+ the resultant bytecode. The '<tt>opt --help</tt>' command is a good way to
+ get a list of the program transformations available in LLVM.<br/>
+ <dd><tt>opt</tt> can also be used to run a specific analysis on an input
+ LLVM bytecode file and print out the results. It is primarily useful for
+ debugging analyses, or familiarizing yourself with what an analysis does.</dd>
</dl>
</div>
<div class="doc_text">
<p>More often than not, bugs in the compiler cause it to crash - often due to an
-assertion failure of some sort. If you are running <tt><b>opt</b></tt> or
-<tt><b>analyze</b></tt> directly, and something crashes, jump to the section on
+assertion failure of some sort. If you are running <tt><b>opt</b></tt>
+directly, and something crashes, jump to the section on
<a href="#passes">bugs in LLVM passes</a>. Otherwise, the most important
piece of the puzzle is to figure out if it is the GCC-based front-end that is
buggy or if it's one of the LLVM tools that has problems.</p>
<a href="CommandGuide/html/llc.html">llc</a>,
<a href="CommandGuide/html/lli.html">lli</a>,
<a href="CommandGuide/html/llvm-link.html">llvm-link</a>,
- <a href="CommandGuide/html/analyze.html">analyze</a>,
<a href="CommandGuide/html/llvm-nm.html">llvm-nm</a>,
<a href="CommandGuide/html/llvm-prof.html">llvm-prof</a>,
<a href="CommandGuide/html/llvmgcc.html">llvmgcc</a>,