[LLVMdev] Possible bug in LiveIntervals (triggered on the XCore target)?

Roman Levenstein romix.llvm at googlemail.com
Tue Jan 13 05:05:23 PST 2009


Hi again,

Now, after I fixed the graph coloring regalloc bug that was triggered
by the ARM target, I continue testing and found another bug, this time
on the XCore target. First I thought that it is again specific to my
register allocator, but it seems to be trigerred also by LLVM's
linearscan register allocator.

I don't know if the XCore target is stable enough in LLVM, or may be I
should just safely skip it during testing because it is not mature
yet. Anyway, I report it here - may be it is of some interest.

The crash happens in LiveIntervalsAnalysis, inside the spilling
function. From what I observe, I'd say it is related to
rematerializable intervals.

The assertion says:
/opt/llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:142:
llvm::LiveInterval& llvm::LiveIntervals::getInterval(unsigned int):
Assertion `I != r2iMap_.end() && "Interval does not exist for
register"' failed.

I attach the BC file generated by bugpoint, so that you can reproduce it.

The command-line I use is:
llc --regalloc=linearscan --march=xcore  -f bugpoint-reduced-simplified.bc

Any ideas about the reasons of this bug?

Thanks,
  -Roman
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bugpoint-reduced-simplified.bc
Type: application/octet-stream
Size: 524 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090113/40f21f5a/attachment.obj>


More information about the llvm-dev mailing list