=pod

=head1 NAME

bugpoint - automatic test case reduction tool

=head1 SYNOPSIS

B<bugpoint> [I<options>] [I<input LLVM ll/bc files>] [I<LLVM passes>] B<--args>
I<program arguments>

=head1 DESCRIPTION

B<bugpoint> narrows down the source of problems in LLVM tools and passes.  It
can be used to debug three types of failures: optimizer crashes, miscompilations
by optimizers, or bad native code generation (including problems in the static
and JIT compilers).  It aims to reduce large test cases to small, useful ones.
For more information on the design and inner workings of B<bugpoint>, as well as
advice for using bugpoint, see F<llvm/docs/Bugpoint.html> in the LLVM
distribution.

=head1 OPTIONS

=over 

=item B<--additional-so> F<library>

Load the dynamic shared object F<library> into the test program whenever it is
run.  This is useful if you are debugging programs which depend on non-LLVM
libraries (such as the X or curses libraries) to run.

=item B<--args> I<program args>

Pass all arguments specified after -args to the test program whenever it runs.
Note that if any of the I<program args> start with a '-', you should use:

    bugpoint [bugpoint args] --args -- [program args]

The "--" right after the B<--args> option tells B<bugpoint> to consider any
options starting with C<-> to be part of the B<--args> option, not as options to
B<bugpoint> itself.

=item B<--tool-args> I<tool args>

Pass all arguments specified after --tool-args to the LLVM tool under test
(B<llc>, B<lli>, etc.) whenever it runs.  You should use this option in the
following way:

    bugpoint [bugpoint args] --tool-args -- [tool args]

The "--" right after the B<--tool-args> option tells B<bugpoint> to consider any
options starting with C<-> to be part of the B<--tool-args> option, not as
options to B<bugpoint> itself. (See B<--args>, above.)

=item B<--check-exit-code>=I<{true,false}>

Assume a non-zero exit code or core dump from the test program is a failure.
Defaults to true.

=item B<--disable-{dce,simplifycfg}>

Do not run the specified passes to clean up and reduce the size of the test
program. By default, B<bugpoint> uses these passes internally when attempting to
reduce test programs.  If you're trying to find a bug in one of these passes,
B<bugpoint> may crash.

=item B<--help>

Print a summary of command line options.

=item B<--input> F<filename>

Open F<filename> and redirect the standard input of the test program, whenever
it runs, to come from that file.

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

Load the dynamic object F<plugin> into B<bugpoint> itself.  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; for example:

    bugpoint --load myNewPass.so --help

=item B<--output> F<filename>

Whenever the test program produces output on its standard output stream, it
should match the contents of F<filename> (the "reference output"). If you
do not use this option, B<bugpoint> will attempt to generate a reference output
by compiling the program with the C backend and running it.

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

Profile file loaded by B<--profile-loader>.

=item B<--run-{int,jit,llc,cbe}>

Whenever the test program is compiled, B<bugpoint> should generate code for it
using the specified code generator.  These options allow you to choose the
interpreter, the JIT compiler, the static native code compiler, or the C
backend, respectively.

=back

=head1 EXIT STATUS

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

=head1 SEE ALSO

L<opt|opt>, L<analyze|analyze>

=head1 AUTHOR

Maintained by the LLVM Team (L<http://llvm.cs.uiuc.edu>).

=cut
