diff --git a/docs/CommandGuide/bugpoint.html b/docs/CommandGuide/bugpoint.html index 502bca56232..e9d0b587c9a 100644 --- a/docs/CommandGuide/bugpoint.html +++ b/docs/CommandGuide/bugpoint.html @@ -15,56 +15,67 @@
+
+
+simplifications. bugpoint is also designed to trade off programmer
+time for computer time in the compiler-debugging process; consequently, it may
+take a long period of (unattended) time to reduce a test case, but we feel it
+is still worth it. :-)
-
+
Otherwise, if the -output option was not
-specified, bugpoint runs the initial program with the C backend (which
+specified, bugpoint runs the test program with the C backend (which
is assumed to generate good code) to generate a reference output. Once
-bugpoint has a reference output to match, it tries executing the
-original program with the selected code generator. If
-the resultant output is different than the reference output, it enters code generator debugging mode.
+bugpoint has a reference output for the test program, it tries
+executing it
+with the selected code generator. If
+the resulting output differs from the reference output, it assumes the
+difference resulted from a code generator failure, and enters
+code generator debugging mode.
-Otherwise, bugpoint 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 bugpoint can debug. Otherwise, it enters miscompilation debugging mode.
+Otherwise, bugpoint runs the test program after all of the LLVM passes
+have been applied to it. If its output differs from the reference output,
+it assumes the difference resulted from a failure in one of the LLVM passes,
+and enters
+miscompilation debugging mode. Otherwise,
+there is no problem bugpoint can debug.Design Philosophy
+
bugpoint has been designed to be a useful tool without requiring any
hooks into the LLVM infrastructure at all. It works with any and all LLVM
passes and code generators, and does not need to "know" how they work. Because
of this, it may appear to do a lot of stupid things or miss obvious
-simplifications. Remember, however, that computer time is much cheaper than
-programmer time, so if it takes a long time to reduce a test case it is still
-worth it. :)Automatic Mode Selection
-bugpoint reads the specified list of .bc or .ll 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
+bugpoint reads each .bc or .ll file
+specified on the command line and links them together into a single module,
+called the test program. If any LLVM passes are
+specified on the command line, it runs these passes on the test program. If
any of the passes crash, or if they produce a malformed LLVM module,
bugpoint enters crash debugging mode.