mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-04-01 07:11:45 +00:00
Assert when reserved registers have been assigned.
This can only happen if the set of reserved registers changes during register allocation. <rdar://problem/10625436> llvm-svn: 147486
This commit is contained in:
parent
79f1692fe0
commit
2c2f5b0b2b
@ -112,6 +112,9 @@ void VirtRegMap::rewrite(SlotIndexes *Indexes) {
|
||||
SmallVector<unsigned, 8> SuperDeads;
|
||||
SmallVector<unsigned, 8> SuperDefs;
|
||||
SmallVector<unsigned, 8> SuperKills;
|
||||
#ifndef NDEBUG
|
||||
BitVector Reserved = TRI->getReservedRegs(*MF);
|
||||
#endif
|
||||
|
||||
for (MachineFunction::iterator MBBI = MF->begin(), MBBE = MF->end();
|
||||
MBBI != MBBE; ++MBBI) {
|
||||
@ -129,6 +132,7 @@ void VirtRegMap::rewrite(SlotIndexes *Indexes) {
|
||||
unsigned VirtReg = MO.getReg();
|
||||
unsigned PhysReg = getPhys(VirtReg);
|
||||
assert(PhysReg != NO_PHYS_REG && "Instruction uses unmapped VirtReg");
|
||||
assert(!Reserved.test(PhysReg) && "Reserved register assignment");
|
||||
|
||||
// Preserve semantics of sub-register operands.
|
||||
if (MO.getSubReg()) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user