[LLVMdev] 2.5 Regalloc Assert
David Greene
dag at cray.com
Mon Dec 7 15:46:29 PST 2009
I am hitting this assert in LLVM 2.5:
/// spillPhysRegAroundRegDefsUses - Spill the specified physical register
/// around all defs and uses of the specified interval.
void LiveIntervals::spillPhysRegAroundRegDefsUses(const LiveInterval &li,
unsigned PhysReg, VirtRegMap &vrm)
{
unsigned SpillReg = getRepresentativeReg(PhysReg);
for (const unsigned *AS = tri_->getAliasSet(PhysReg); *AS; ++AS)
// If there are registers which alias PhysReg, but which are not a
// sub-register of the chosen representative super register. Assert
// since we can't handle it yet.
assert(*AS == SpillReg || !allocatableRegs_[*AS] ||
tri_->isSuperRegister(*AS, SpillReg));
The test also asserts on trunk, though with an error about running out
of registers. I am working to file a bug.
I am also going to try 2.6.
Any hints on what might be going on?
-Dave
More information about the llvm-dev
mailing list