mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-16 06:49:58 +00:00
Re-enable 102323 with fix: do not update dbg_value's with incorrect frame indices when the live interval are being re-materialized.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102361 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f74e25f60c
commit
6fa7636e61
@ -1296,28 +1296,25 @@ rewriteInstructionsForSpills(const LiveInterval &li, bool TrySplit,
|
||||
MachineOperand &O = ri.getOperand();
|
||||
++ri;
|
||||
if (MI->isDebugValue()) {
|
||||
#if 0
|
||||
// Disabled temporarily.
|
||||
// Modify DBG_VALUE now that the value is in a spill slot.
|
||||
uint64_t Offset = MI->getOperand(1).getImm();
|
||||
const MDNode *MDPtr = MI->getOperand(2).getMetadata();
|
||||
DebugLoc DL = MI->getDebugLoc();
|
||||
MachineInstr *NewDV = tii_->emitFrameIndexDebugValue(*mf_, Slot, Offset,
|
||||
MDPtr, DL);
|
||||
if (NewDV) {
|
||||
DEBUG(dbgs() << "Modifying debug info due to spill:" << "\t" << *MI);
|
||||
ReplaceMachineInstrInMaps(MI, NewDV);
|
||||
MachineBasicBlock *MBB = MI->getParent();
|
||||
MBB->insert(MBB->erase(MI), NewDV);
|
||||
} else {
|
||||
#endif
|
||||
DEBUG(dbgs() << "Removing debug info due to spill:" << "\t" << *MI);
|
||||
RemoveMachineInstrFromMaps(MI);
|
||||
vrm.RemoveMachineInstrFromMaps(MI);
|
||||
MI->eraseFromParent();
|
||||
#if 0
|
||||
if (Slot == VirtRegMap::NO_STACK_SLOT) {
|
||||
uint64_t Offset = MI->getOperand(1).getImm();
|
||||
const MDNode *MDPtr = MI->getOperand(2).getMetadata();
|
||||
DebugLoc DL = MI->getDebugLoc();
|
||||
if (MachineInstr *NewDV = tii_->emitFrameIndexDebugValue(*mf_, Slot,
|
||||
Offset, MDPtr, DL)) {
|
||||
DEBUG(dbgs() << "Modifying debug info due to spill:" << "\t" << *MI);
|
||||
ReplaceMachineInstrInMaps(MI, NewDV);
|
||||
MachineBasicBlock *MBB = MI->getParent();
|
||||
MBB->insert(MBB->erase(MI), NewDV);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
DEBUG(dbgs() << "Removing debug info due to spill:" << "\t" << *MI);
|
||||
RemoveMachineInstrFromMaps(MI);
|
||||
vrm.RemoveMachineInstrFromMaps(MI);
|
||||
MI->eraseFromParent();
|
||||
continue;
|
||||
}
|
||||
assert(!O.isImplicit() && "Spilling register that's used as implicit use?");
|
||||
|
Loading…
x
Reference in New Issue
Block a user