[LLVMdev] Got bugs? Perhaps bugpoint can help...

Chris Lattner sabre at nondot.org
Sat Dec 7 15:50:01 PST 2002

Hey everyone.  It sounds like 426 people are in for a fun weekend.  It's
possible that some of you may even have bugs in your code (I know, I know,
not YOU... :)   If this is you, read on...

You might be interested in trying out the 'bugpoint' tool.  It can help
you when your pass crashes on a testcase.  Merely tell it the input
testcase and the name of your pass, and it will try to reduce the testcase
as much as possible, trying to make your debugging a bit easier.

Usage is just like opt or analyze, but slightly more general:
$ bugpoint foo1.bc foo2.ll -pass1 -pass2 -pass3

You can give it an arbitrary number of .ll or .bc files, and you can give
it 'opt' passes or 'analyze' passes.  Of course you can use -load just
like opt or analyze.

Note that this tool will currently only help you if your pass _crashes_.
It cannot yet help with infinite loops or miscompilations.  However it is
particularly useful on large testcases like spec benchmarks, but is quite
useful even on smaller multi-function testcases.

 1. I'm quite busy this week, so I won't really be able to help if you run
    into problems with bugpoint.  No warrantee expressed or implied.  If
    it breaks you get to keep both pieces.  If it gives you a rash, sorry,
    just don't scratch.
 2. However, I am interested in fixing the bugs.  If you run into problems
    with bugpoint, please post information to the llvmbugs at cs.uiuc.edu
    mailing list.  When I have time, I will get the bugs fixed.
 3. There is already one bugfix that is unlikely to be in your tree:
    if you get assertions in ConstantArray or ConstantStruct when running
    bugpoint, this is the patch.  Thanks to Misha for pointing out the
 4. If bugpoint helps, I would like to hear about it.  If you have
    suggestions for improvement, please send them my way.  Support for
    debugging infinite loops and miscompilations is already planned
    though.  :)

Anyway, good luck with your projects.  I hope you don't all hate LLVM too
much after the experience...  :)



More information about the llvm-dev mailing list