-problems in LLVM tools and passes.<p>
-
-<tt>bugpoint</tt> reads the specified list of .bc or .ll files specified on the
-command-line and links them together. It then runs the specified LLVM passes on
-the resultant bytecode file. If any of the passes crash, or if they produce an
-LLVM module which is not verifiable, bugpoint enters "crash debugging mode".
-Otherwise, <tt>bugpoint</tt> tries to run the resultant program with a code
-generator. If the code generated program does not match the reference output,
-it enters "miscompilation debugging mode".
-
+problems in LLVM tools and passes. It can be used to debug three types of
+failures: optimizer crashes, miscompilations by optimizers, or invalid native
+code generation. It aims to reduce testcases to something useful. For example,
+if <tt><a href="gccas.html">gccas</a></tt> crashes while optimizing a file, it
+will identify the optimization (or combination of optimizations) that causes the
+crash, and reduce the file down to a small example which triggers the crash.<p>
+
+<tt>bugpoint</tt> reads the specified list of <tt>.bc</tt> or <tt>.ll</tt> files
+specified on the command-line and links them together. If any LLVM passes are
+specified on the command line, it runs these passes on the resultant module. If
+any of the passes crash, or if they produce an LLVM module which is not
+verifiable, <tt>bugpoint</tt> enters <a href="#crashdebug">crash debugging
+mode</a>.<p>
+
+Otherwise, if the <a href="#opt_output"><tt>-output</tt></a> option was not
+specified, <tt>bugpoint</tt> runs the initial program with the C backend (which
+is assumed to generate good code) to generate a reference output. Once
+<tt>bugpoint</tt> has a reference output to match, it tries executing the
+original program with the <a href="#opt_run-">selected</a> code generator. If
+the resultant output is different than the reference output, it exters <a
+href="#codegendebug">code generator debugging mode</a>.<p>
+
+Otherwise, <tt>bugpoint</tt> runs the LLVM program after all of the LLVM passes
+have been applied to it. If the executed program matches the reference output,
+there is no problem <tt>bugpoint</tt> can debug. Otherwise, it enters <a
+href="#miscompilationdebug">miscompilation debugging mode</a>.<p>
+
+<a name="crashdebug">