<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                      "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>How to submit an LLVM bug report</title>
  <link rel="stylesheet" href="llvm.css" type="text/css">
</head>
<body>

<div class="doc_title">
  How to submit an LLVM bug report
</div>

<table class="layout" style="width: 90%" >
<tr class="layout">
  <td class="left">
<ol>
  <li><a href="#introduction">Introduction - Got bugs?</a></li>
  <li><a href="#crashers">Crashing Bugs</a>
    <ul>
    <li><a href="#front-end">Front-end bugs</a>
    <li><a href="#ct_optimizer">Compile-time optimization bugs</a>
    <li><a href="#ct_codegen">Code generator bugs</a>
    </ul></li>
  <li><a href="#miscompilations">Miscompilations</a></li>
  <li><a href="#codegen">Incorrect code generation (JIT and LLC)</a></li>
</ol>
<div class="doc_author">
  <p>Written by <a href="mailto:sabre@nondot.org">Chris Lattner</a> and
                <a href="http://misha.brukman.net">Misha Brukman</a></p>
</div>
</td>
<td class="right">
  <img src="img/Debugging.gif" alt="Debugging" width="444" height="314">
</td>
</tr>
</table>

<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="introduction">Introduction - Got bugs?</a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">

<p>If you're working with LLVM and run into a bug, we definitely want to know
about it.  This document describes what you can do to increase the odds of
getting it fixed quickly.</p>

<p>Basically you have to do two things at a minimum.  First, decide whether the
bug <a href="#crashers">crashes the compiler</a> (or an LLVM pass), or if the
compiler is <a href="#miscompilations">miscompiling</a> the program (i.e., the
compiler successfully produces an executable, but it doesn't run right).  Based
on
what type of bug it is, follow the instructions in the linked section to narrow
down the bug so that the person who fixes it will be able to find the problem
more easily.</p>

<p>Once you have a reduced test-case, go to <a
href="http://llvm.org/bugs/enter_bug.cgi">the LLVM Bug Tracking
System</a> and fill out the form with the necessary details (note that you don't
need to pick a catagory, just use the "new-bugs" catagory if you're not sure).
The bug description should contain the following
information:</p>

<ul>
  <li>All information necessary to reproduce the problem.</li>
  <li>The reduced test-case that triggers the bug.</li>
  <li>The location where you obtained LLVM (if not from our CVS
  repository).</li>
</ul>

<p>Thanks for helping us make LLVM better!</p>

</div>

<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="crashers">Crashing Bugs</a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">

<p>More often than not, bugs in the compiler cause it to crash&mdash;often due
to an assertion failure of some sort. The most important
piece of the puzzle is to figure out if it is crashing in the GCC front-end
or if it is one of the LLVM libraries (e.g. the optimizer or code generator)
that has problems.</p>

<p>To figure out which component is crashing (the front-end,
optimizer or code generator), run the
<tt><b>llvm-gcc</b></tt> command line as you were when the crash occurred, but
with the following extra command line options:</p>

<ul>
  <li><tt><b>-O0 -emit-llvm</b></tt>: If <tt>llvm-gcc</tt> still crashes when
  passed these options (which disable the optimizer and code generator), then
  the crash is in the front-end.  Jump ahead to the section on <a
  href="#front-end">front-end bugs</a>.</li>

  <li><tt><b>-emit-llvm</b></tt>: If <tt>llvm-gcc</tt> crashes with this option
  (which disables the code generator), you found an optimizer bug.  Jump ahead
  to <a href="#ct_optimizer"> compile-time optimization bugs</a>.</li>

  <li>Otherwise, you have a code generator crash.  Jump ahead to <a
  href="#ct_codegen">code generator bugs</a>.</li>

</ul>

</div>

<!-- ======================================================================= -->
<div class="doc_subsection">
  <a name="front-end">Front-end bugs</a>
</div>

<div class="doc_text">

<p>If the problem is in the front-end, you should re-run the same
<tt>llvm-gcc</tt> command that resulted in the crash, but add the
<tt>-save-temps</tt> option.  The compiler will crash again, but it will leave
behind a <tt><i>foo</i>.i</tt> file (containing preprocessed C source code) and
possibly <tt><i>foo</i>.s</tt> for each
compiled <tt><i>foo</i>.c</tt> file. Send us the <tt><i>foo</i>.i</tt> file,
along with the options you passed to llvm-gcc, and a brief description of the
error it caused.</p>

<p>The <a href="http://delta.tigris.org/">delta</a> tool helps to reduce the
preprocessed file down to the smallest amount of code that still replicates the
problem. You're encouraged to use delta to reduce the code to make the
developers' lives easier. <a
href="http://gcc.gnu.org/wiki/A_guide_to_testcase_reduction">This website</a>
has instructions on the best way to use delta.</p>

</div>

<!-- ======================================================================= -->
<div class="doc_subsection">
  <a name="ct_optimizer">Compile-time optimization bugs</a>
</div>

<div class="doc_text">

<p>If you find that a bug crashes in the optimizer, compile your test-case to a
<tt>.bc</tt> file by passing "<tt><b>-emit-llvm -O0 -c -o foo.bc</b></tt>".
Then run:</p>

<div class="doc_code">
<p><tt><b>opt</b> -std-compile-opts -debug-pass=Arguments foo.bc
    -disable-output</tt></p>
</div>

<p>This command should do two things: it should print out a list of passes, and
then it should crash in the same was as llvm-gcc.  If it doesn't crash, please
follow the instructions for a <a href="#front-end">front-end bug</a>.</p>

<p>If this does crash, then you should be able to debug this with the following
bugpoint command:</p>

<div class="doc_code">
<p><tt><b>bugpoint</b> foo.bc &lt;list of passes printed by 
<b>opt</b>&gt;</tt></p>
</div>

<p>Please run this, then file a bug with the instructions and reduced .bc files
that bugpoint emits.  If something goes wrong with bugpoint, please submit the
"foo.bc" file and the list of passes printed by <b>opt</b>.</p>

</div>

<!-- ======================================================================= -->
<div class="doc_subsection">
  <a name="ct_codegen">Code generator bugs</a>
</div>

<div class="doc_text">

<p>If you find a bug that crashes llvm-gcc in the code generator, compile your
source file to a .bc file by passing "<tt><b>-emit-llvm -c -o foo.bc</b></tt>"
to llvm-gcc (in addition to the options you already pass).  Once your have
foo.bc, one of the following commands should fail:</p>

<ol>
<li><tt><b>llc</b> foo.bc -f</tt></li>
<li><tt><b>llc</b> foo.bc -f -relocation-model=pic</tt></li>
<li><tt><b>llc</b> foo.bc -f -relocation-model=static</tt></li>
<li><tt><b>llc</b> foo.bc -f -enable-eh</tt></li>
<li><tt><b>llc</b> foo.bc -f -relocation-model=pic -enable-eh</tt></li>
<li><tt><b>llc</b> foo.bc -f -relocation-model=static -enable-eh</tt></li>
</ol>

<p>If none of these crash, please follow the instructions for a
<a href="#front-end">front-end bug</a>.  If one of these do crash, you should
be able to reduce this with one of the following bugpoint command lines (use
the one corresponding to the command above that failed):</p>

<ol>
<li><tt><b>bugpoint</b> -run-llc foo.bc</tt></li>
<li><tt><b>bugpoint</b> -run-llc foo.bc --tool-args
           -relocation-model=pic</tt></li>
<li><tt><b>bugpoint</b> -run-llc foo.bc --tool-args
           -relocation-model=static</tt></li>
<li><tt><b>bugpoint</b> -run-llc foo.bc --tool-args -enable-eh</tt></li>
<li><tt><b>bugpoint</b> -run-llc foo.bc --tool-args
           -relocation-model=pic -enable-eh</tt></li>
<li><tt><b>bugpoint</b> -run-llc foo.bc --tool-args
           -relocation-model=static -enable-eh</tt></li>
</ol>

<p>Please run this, then file a bug with the instructions and reduced .bc file
that bugpoint emits.  If something goes wrong with bugpoint, please submit the
"foo.bc" file and the option that llc crashes with.</p>

</div>

<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="miscompilations">Miscompilations</a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">

<p>If llvm-gcc successfully produces an executable, but that executable doesn't
run right, this is either a bug in the code or a bug in the
compiler.  The first thing to check is to make sure it is not using undefined
behavior (e.g. reading a variable before it is defined).  In particular, check
to see if the program <a href="http://valgrind.org/">valgrind</a>s 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 [... optzn passes ...] file-to-test.bc --args -- [program arguments]</tt></p>
</div>

<p><tt>bugpoint</tt> will try to narrow down your list of passes to the one pass
that causes an error, and simplify the bytecode file as much as it can to assist
you. It will print a message letting you know how to reproduce the resulting
error.</p>

</div>

<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="codegen">Incorrect code generation</a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">

<p>Similarly to debugging incorrect compilation by mis-behaving passes, you can
debug incorrect code generation by either LLC or the JIT, using
<tt>bugpoint</tt>. The process <tt>bugpoint</tt> follows in this case is to try
to narrow the code down to a function that is miscompiled by one or the other
method, but since for correctness, the entire program must be run,
<tt>bugpoint</tt> will compile the code it deems to not be affected with the C
Backend, and then link in the shared object it generates.</p>

<p>To debug the JIT:</p>

<div class="doc_code">
<pre>
bugpoint -run-jit -output=[correct output file] [bytecode file]  \
         --tool-args -- [arguments to pass to lli]               \
         --args -- [program arguments]
</pre>
</div>

<p>Similarly, to debug the LLC, one would run:</p>

<div class="doc_code">
<pre>
bugpoint -run-llc -output=[correct output file] [bytecode file]  \
         --tool-args -- [arguments to pass to llc]               \
         --args -- [program arguments]
</pre>
</div>

<p><b>Special note:</b> if you are debugging MultiSource or SPEC tests that
already exist in the <tt>llvm/test</tt> hierarchy, there is an easier way to
debug the JIT, LLC, and CBE, using the pre-written Makefile targets, which
will pass the program options specified in the Makefiles:</p>

<div class="doc_code">
<p><tt>
cd llvm/test/../../program<br>
make bugpoint-jit
</tt></p>
</div>

<p>At the end of a successful <tt>bugpoint</tt> run, you will be presented
with two bytecode files: a <em>safe</em> file which can be compiled with the C
backend and the <em>test</em> file which either LLC or the JIT
mis-codegenerates, and thus causes the error.</p>

<p>To reproduce the error that <tt>bugpoint</tt> found, it is sufficient to do
the following:</p>

<ol>

<li><p>Regenerate the shared object from the safe bytecode file:</p>

<div class="doc_code">
<p><tt>
<b>llc</b> -march=c safe.bc -o safe.c<br>
<b>gcc</b> -shared safe.c -o safe.so
</tt></p>
</div></li>

<li><p>If debugging LLC, compile test bytecode native and link with the shared
    object:</p>

<div class="doc_code">
<p><tt>
<b>llc</b> test.bc -o test.s -f<br>
<b>gcc</b> test.s safe.so -o test.llc<br>
./test.llc [program options]
</tt></p>
</div></li>
    
<li><p>If debugging the JIT, load the shared object and supply the test
    bytecode:</p>

<div class="doc_code">
<p><tt><b>lli</b> -load=safe.so test.bc [program options]</tt></p>
</div></li>  

</ol>

</div>

<!-- *********************************************************************** -->
<hr>
<address>
  <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
  src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a>
  <a href="http://validator.w3.org/check/referer"><img
  src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>

  <a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
  <a href="http://llvm.org">The LLVM Compiler Infrastructure</a>
  <br>
  Last modified: $Date$
</address>

</body>
</html>
