mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-14 14:24:05 +00:00
Notify LiveRangeEdit of new virtual registers.
Add a delegate class to MachineRegisterInfo with a single virtual function, MRI_NoteNewVirtualRegister(). Update LiveRangeEdit to inherit from this delegate class and override the definition of the callback with an implementation that tracks the newly created virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188435 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -33,11 +33,9 @@ void LiveRangeEdit::Delegate::anchor() { }
|
||||
LiveInterval &LiveRangeEdit::createFrom(unsigned OldReg) {
|
||||
unsigned VReg = MRI.createVirtualRegister(MRI.getRegClass(OldReg));
|
||||
if (VRM) {
|
||||
VRM->grow();
|
||||
VRM->setIsSplitFromReg(VReg, VRM->getOriginal(OldReg));
|
||||
}
|
||||
LiveInterval &LI = LIS.getOrCreateInterval(VReg);
|
||||
NewRegs.push_back(VReg);
|
||||
return LI;
|
||||
}
|
||||
|
||||
@ -387,6 +385,17 @@ void LiveRangeEdit::eliminateDeadDefs(SmallVectorImpl<MachineInstr*> &Dead,
|
||||
}
|
||||
}
|
||||
|
||||
// Keep track of new virtual registers created via
|
||||
// MachineRegisterInfo::createVirtualRegister.
|
||||
void
|
||||
LiveRangeEdit::MRI_NoteNewVirtualRegister(unsigned VReg)
|
||||
{
|
||||
if (VRM)
|
||||
VRM->grow();
|
||||
|
||||
NewRegs.push_back(VReg);
|
||||
}
|
||||
|
||||
void
|
||||
LiveRangeEdit::calculateRegClassAndHint(MachineFunction &MF,
|
||||
const MachineLoopInfo &Loops,
|
||||
|
Reference in New Issue
Block a user