mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-25 00:33:15 +00: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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30204 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
cc406328bf
commit
0c5b8dac79
@ -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…
x
Reference in New Issue
Block a user