mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
Non-allocatable physregs can be killed and dead, but don't treat them as
safe for later allocation. This fixes McCat/18-imp with llc-beta. llvm-svn: 30204
This commit is contained in:
parent
a531dd1879
commit
d269774664
@ -580,6 +580,9 @@ void RA::AllocateBasicBlock(MachineBasicBlock &MBB) {
|
||||
unsigned &PhysRegSlot = getVirt2PhysRegMapSlot(VirtReg);
|
||||
PhysReg = PhysRegSlot;
|
||||
PhysRegSlot = 0;
|
||||
} else if (PhysRegsUsed[PhysReg] == -2) {
|
||||
// Unallocatable register dead, ignore.
|
||||
continue;
|
||||
}
|
||||
|
||||
if (PhysReg) {
|
||||
@ -669,6 +672,9 @@ void RA::AllocateBasicBlock(MachineBasicBlock &MBB) {
|
||||
PhysReg = PhysRegSlot;
|
||||
assert(PhysReg != 0);
|
||||
PhysRegSlot = 0;
|
||||
} else if (PhysRegsUsed[PhysReg] == -2) {
|
||||
// Unallocatable register dead, ignore.
|
||||
continue;
|
||||
}
|
||||
|
||||
if (PhysReg) {
|
||||
|
Loading…
Reference in New Issue
Block a user