From: Chris Lattner Date: Tue, 11 May 2004 19:34:27 +0000 (+0000) Subject: Add a note to make sure the program is memory correct X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;ds=sidebyside;h=8436c21ad1a85ca1e68bca2e332fd45f024b478a;p=oota-llvm.git 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 --- diff --git a/docs/HowToSubmitABug.html b/docs/HowToSubmitABug.html index 7c0b21766f0..16e4c24a58b 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.

-

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:

+

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.

+ +

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:

bugpoint -run-cbe [... optimization passes ...] file-to-test.bc