mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-12 13:38:21 +00:00
Dont emit 'DBG_VALUE %noreg, ...' to terminate user variable ranges.
These ranges get completely jumbled by the post-ra scheduler, and it is not really reasonable to expect it to make sense of them. Instead, teach DwarfDebug to notice when user variables in registers are clobbered, and terminate the ranges there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128045 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -101,10 +101,6 @@ class UserValue {
|
||||
void insertDebugValue(MachineBasicBlock *MBB, SlotIndex Idx, unsigned LocNo,
|
||||
LiveIntervals &LIS, const TargetInstrInfo &TII);
|
||||
|
||||
/// insertDebugKill - Insert an undef DBG_VALUE into MBB at Idx.
|
||||
void insertDebugKill(MachineBasicBlock *MBB, SlotIndex Idx,
|
||||
LiveIntervals &LIS, const TargetInstrInfo &TII);
|
||||
|
||||
public:
|
||||
/// UserValue - Create a new UserValue.
|
||||
UserValue(const MDNode *var, unsigned o, DebugLoc L,
|
||||
@ -752,13 +748,6 @@ void UserValue::insertDebugValue(MachineBasicBlock *MBB, SlotIndex Idx,
|
||||
.addOperand(Loc).addImm(offset).addMetadata(variable);
|
||||
}
|
||||
|
||||
void UserValue::insertDebugKill(MachineBasicBlock *MBB, SlotIndex Idx,
|
||||
LiveIntervals &LIS, const TargetInstrInfo &TII) {
|
||||
MachineBasicBlock::iterator I = findInsertLocation(MBB, Idx, LIS);
|
||||
BuildMI(*MBB, I, findDebugLoc(), TII.get(TargetOpcode::DBG_VALUE)).addReg(0)
|
||||
.addImm(offset).addMetadata(variable);
|
||||
}
|
||||
|
||||
void UserValue::emitDebugValues(VirtRegMap *VRM, LiveIntervals &LIS,
|
||||
const TargetInstrInfo &TII) {
|
||||
MachineFunction::iterator MFEnd = VRM->getMachineFunction().end();
|
||||
@ -790,12 +779,6 @@ void UserValue::emitDebugValues(VirtRegMap *VRM, LiveIntervals &LIS,
|
||||
break;
|
||||
|
||||
++I;
|
||||
if (Stop == MBBEnd)
|
||||
continue;
|
||||
// The current interval ends before MBB.
|
||||
// Insert a kill if there is a gap.
|
||||
if (!I.valid() || I.start() > Stop)
|
||||
insertDebugKill(MBB, Stop, LIS, TII);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user