aboutsummaryrefslogtreecommitdiffstats
path: root/docs/HowToSubmitABug.html
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-05-11 19:34:27 +0000
committerChris Lattner <sabre@nondot.org>2004-05-11 19:34:27 +0000
commit8436c21ad1a85ca1e68bca2e332fd45f024b478a (patch)
tree20f6d7d5f7711fa87c0534678f99ae4661727cf9 /docs/HowToSubmitABug.html
parent19fa3f51ee8951e19605815bd602e1a1a864c752 (diff)
downloadexternal_llvm-8436c21ad1a85ca1e68bca2e332fd45f024b478a.zip
external_llvm-8436c21ad1a85ca1e68bca2e332fd45f024b478a.tar.gz
external_llvm-8436c21ad1a85ca1e68bca2e332fd45f024b478a.tar.bz2
Add a note to make sure the program is memory correct
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13464 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/HowToSubmitABug.html')
-rw-r--r--docs/HowToSubmitABug.html12
1 files changed, 9 insertions, 3 deletions
diff --git a/docs/HowToSubmitABug.html b/docs/HowToSubmitABug.html
index 7c0b217..16e4c24 100644
--- a/docs/HowToSubmitABug.html
+++ b/docs/HowToSubmitABug.html
@@ -230,9 +230,15 @@ from producing invalid LLVM code (i.e., code not in SSA form, using values
before defining them, etc.) which the verifier will check for after a pass
finishes its run.</p>
-<p>To debug a miscompilation, you should choose which program you wish to run
-the output through, e.g. C backend, the JIT, or LLC, and a selection of passes,
-one of which may be causing the error, and run, for example:</p>
+<p>If it looks like the LLVM compiler is miscompiling a program, the very first
+thing to check is to make sure it is not using undefined behavior. In
+particular, check to see if the program valgrinds clean, passes purify, or some
+other memory checker tool. Many of the "LLVM bugs" that we have chased down
+ended up being bugs in the program being compiled, not LLVM.</p>
+
+<p>Once you determine that the program itself is not buggy, you should choose
+which code generator you wish to compile the program with (e.g. C backend, the
+JIT, or LLC) and optionally a series of LLVM passes to run. For example:</p>
<div class="doc_code">
<p><tt><b>bugpoint</b> -run-cbe [... optimization passes ...] file-to-test.bc