I've made quite a bit of progress getting bugpoint to work with
our (non-gcc) tools. In fact I caught the alignment bug I
recently posted about using it. But it's not there yet. In
particular, I am seeing this scenario a lot (comments in brackets):
*** Found miscompiling pass: -instcombine
Emitted bitcode to 'bugpoint-passinput.bc'
[ Good! This is progress! ]
*** You can reproduce the problem with: opt bugpoint-passinput.bc -instcombine
Checking to see if the program is misoptimized when these functions are run
through the pass: main sub0_ init_
Removing function main
Removing function sub0_
Removing function init_
Optimizing functions being tested: done.
Checking to see if the merged program executes correctly: <llc>
About to run: llc -o bugpoint-test-program.bc.llc.s -f
bugpoint-test-program.bc
<cray>
About to run: ftn bugpoint-test-program.bc.llc.s -c -o
bugpoint-test-program.bc.llc.s.cray.o-yIVqrc
<cray>
About to run: ftn bugpoint-test-program.bc.llc.s.cray.o-yIVqrc -o
bugpoint-test-program.bc.llc.s.cray.exe -lm
Error running tool:
ftn bugpoint-test-program.bc.llc.s.cray.o-yIVqrc -o
bugpoint-test-program.bc.llc.s.cray.exe -lm
/opt/xt-asyncpe/2.0.5/bin/ftn: INFO: native target is being used
bugpoint-test-program.bc.llc.s.cray.o-yIVqrc: In function `red09_':
(.text+0x48): undefined reference to `__unnamed_1_0'
[ and lots more of the same ]
*** Debugging code generator crash!
[ Uh..no, this is a link failure... ]
It appears that bugpoint outflanks itself and removes some global symbols,
generating a link error and causing bugpoint to go off on a not-very-useful
code generator crash analysis. So I never actually end up getting a reduced
test case.
Has anyone else seen this kind of behavior before? What's a reasonable way
to
address it? Should bugpoint try to detect link failures and then undo
whatever it did just before the link failure?
Thanks for a great tool. I'm happy to help make it better!
-Dave
On Jul 17, 2008, at 5:38 PM, David Greene wrote:> I've made quite a bit of progress getting bugpoint to work with > our (non-gcc) tools. In fact I caught the alignment bug I > recently posted about using it. But it's not there yet.Cool.> > It appears that bugpoint outflanks itself and removes some global > symbols, > generating a link error and causing bugpoint to go off on a not-very- > useful > code generator crash analysis. So I never actually end up getting a > reduced > test case.This occurs when you have functions/globals with no name (i.e. F- >setName("")). This might be http://llvm.org/bugs/show_bug.cgi?id=718 The basic fix is for bugpoint to add names to any unnamed symbols before it starts grinding. -Chris