[LLVMdev] x86 cogen quality

Finn S Andersen
Mon, 26 Apr 2004 05:07:01 -0000

Alkis Evlogimenos wrote:

>Is there a chance you can try cvs? I would be interested to
>get a simplified test case where the allocator breaks. A lot of
>improvements went into the x86 backend since 1.2 and we currently have
>no test cases where the allocator breaks today.
>
>
I updated and recompiled and the error is still there. It turns out that I
cannot use the bugpoint utility to narrow down the error, because it
is not a miscompilation and it is not a compiler pass. It is a co-gen pass
and to provoke it I need to pass the regalloc=linearscan to llc or lli,
but the bugpoint utility does not support it.

I attach a small bytecode file that triggers the bug.

My apologies for trying to submit a bug through email to this list,
but there appear to be some problem with bugzilla. Although I have
opened an account, registered a password and confirmed it through
mail, I am still rejected by bugzilla when I try to log in.

I hope you can use the attached bc to narrow down the bug.
Thanks a lot for any help.
----------------------

The message I get when running the attached bc:

[finna at coplin11 fft]$ lli  -regalloc=linearscan a.out.bc
lli: /home/finna/llvm/llvm/include/llvm/Target/MRegisterInfo.h:144:
static bool llvm::MRegisterInfo::isPhysicalRegister(unsigned int):
Assertion `Reg
&& "this is not a register!"' failed.
lli[0x849e768]
lli[0x849e974]
/lib/tls/libc.so.6[0x420277b8]
/lib/tls/libc.so.6(abort+0x1d5)[0x42028c55]
/lib/tls/libc.so.6[0x42021043]
lli(llvm::MRegisterInfo::isPhysicalRegister(unsigned)+0x25)[0x8314863]
lli((anonymous
namespace)::RA::assignRegOrStackSlotAtInterval(llvm::LiveIntervals::Interval*)+0x844)[0x8307d16]
lli((anonymous namespace)::RA::linearScan()+0x3c1)[0x8306aff]
lli((anonymous
namespace)::RA::runOnMachineFunction(llvm::MachineFunction&)+0x1d7)[0x83066f1]
lli(llvm::MachineFunctionPass::runOnFunction(llvm::Function&)+0x28)[0x83144fe]
lli(llvm::PassManagerTraits<llvm::Function>::runPass(llvm::FunctionPass*,
llvm::Function*)+0x1b)[0x84786d5]
lli(llvm::PassManagerT<llvm::Function>::runOnUnit(llvm::Function*)+0x5e4)[0x8473ba0]
lli(llvm::PassManagerTraits<llvm::Function>::runOnFunction(llvm::Function&)+0x1b)[0x8471a1b]
lli(llvm::FunctionPass::run(llvm::Function&)+0x6b)[0x84259c3]
lli(llvm::FunctionPassManager::run(llvm::Function&)+0x34)[0x8424f16]
lli(llvm::JIT::runJITOnFunction(llvm::Function*)+0x3e)[0x82f4062]
lli(llvm::JIT::getPointerToFunction(llvm::Function*)+0xf3)[0x82f41b5]
lli(llvm::JIT::runFunction(llvm::Function*,
std::vector<llvm::GenericValue, std::allocator<llvm::GenericValue> >
const&)+0x5c)[0x82f3f1a]
lli(llvm::ExecutionEngine::runFunctionAsMain(llvm::Function*,
std::vector<std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::allocator<std::basic_string<char,
std::char_traits<char>, std::allocator<char> > > >
const&, char const*
const*)+0x25b)[0x8338111]
lli(main+0x23c)[0x82db5dc]
/lib/tls/libc.so.6(__libc_start_main+0xe4)[0x42015704]
lli(dlopen+0x41)[0x82db311]
Abort (core dumped)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: a.out.bc
Type: application/octet-stream
Size: 1092 bytes
Desc: not available
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20040426/6d0bca0f/attachment.obj>