forked from OSchip/llvm-project
Remove LIS::isAllocatable() and isReserved() helpers.
All callers can simply use the corresponding MRI functions. llvm-svn: 165985
This commit is contained in:
parent
6b7bdf88c9
commit
cea596acf7
|
@ -65,12 +65,6 @@ namespace llvm {
|
|||
/// Live interval pointers for all the virtual registers.
|
||||
IndexedMap<LiveInterval*, VirtReg2IndexFunctor> VirtRegIntervals;
|
||||
|
||||
/// AllocatableRegs - A bit vector of allocatable registers.
|
||||
BitVector AllocatableRegs;
|
||||
|
||||
/// ReservedRegs - A bit vector of reserved registers.
|
||||
BitVector ReservedRegs;
|
||||
|
||||
/// RegMaskSlots - Sorted list of instructions with register mask operands.
|
||||
/// Always use the 'r' slot, RegMasks are normal clobbers, not early
|
||||
/// clobbers.
|
||||
|
@ -123,18 +117,6 @@ namespace llvm {
|
|||
return VirtRegIntervals.inBounds(Reg) && VirtRegIntervals[Reg];
|
||||
}
|
||||
|
||||
/// isAllocatable - is the physical register reg allocatable in the current
|
||||
/// function?
|
||||
bool isAllocatable(unsigned reg) const {
|
||||
return AllocatableRegs.test(reg);
|
||||
}
|
||||
|
||||
/// isReserved - is the physical register reg reserved in the current
|
||||
/// function
|
||||
bool isReserved(unsigned reg) const {
|
||||
return ReservedRegs.test(reg);
|
||||
}
|
||||
|
||||
// Interval creation.
|
||||
LiveInterval &getOrCreateInterval(unsigned Reg) {
|
||||
if (!hasInterval(Reg)) {
|
||||
|
|
|
@ -164,7 +164,7 @@ void VirtRegAuxInfo::CalculateWeightAndHint(LiveInterval &li) {
|
|||
continue;
|
||||
float hweight = Hint[hint] += weight;
|
||||
if (TargetRegisterInfo::isPhysicalRegister(hint)) {
|
||||
if (hweight > bestPhys && LIS.isAllocatable(hint))
|
||||
if (hweight > bestPhys && mri.isAllocatable(hint))
|
||||
bestPhys = hweight, hintPhys = hint;
|
||||
} else {
|
||||
if (hweight > bestVirt)
|
||||
|
|
|
@ -110,8 +110,6 @@ bool LiveIntervals::runOnMachineFunction(MachineFunction &fn) {
|
|||
DomTree = &getAnalysis<MachineDominatorTree>();
|
||||
if (!LRCalc)
|
||||
LRCalc = new LiveRangeCalc();
|
||||
AllocatableRegs = TRI->getAllocatableSet(fn);
|
||||
ReservedRegs = TRI->getReservedRegs(fn);
|
||||
|
||||
// Allocate space for all virtual registers.
|
||||
VirtRegIntervals.resize(MRI->getNumVirtRegs());
|
||||
|
@ -542,11 +540,11 @@ void LiveIntervals::computeRegUnitInterval(LiveInterval *LI) {
|
|||
// Ignore uses of reserved registers. We only track defs of those.
|
||||
for (MCRegUnitRootIterator Roots(Unit, TRI); Roots.isValid(); ++Roots) {
|
||||
unsigned Root = *Roots;
|
||||
if (!isReserved(Root) && !MRI->reg_empty(Root))
|
||||
if (!MRI->isReserved(Root) && !MRI->reg_empty(Root))
|
||||
LRCalc->extendToUses(LI, Root);
|
||||
for (MCSuperRegIterator Supers(Root, TRI); Supers.isValid(); ++Supers) {
|
||||
unsigned Reg = *Supers;
|
||||
if (!isReserved(Reg) && !MRI->reg_empty(Reg))
|
||||
if (!MRI->isReserved(Reg) && !MRI->reg_empty(Reg))
|
||||
LRCalc->extendToUses(LI, Reg);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -249,7 +249,7 @@ void LiveRangeEdit::eliminateDeadDefs(SmallVectorImpl<MachineInstr*> &Dead,
|
|||
unsigned Reg = MOI->getReg();
|
||||
if (!TargetRegisterInfo::isVirtualRegister(Reg)) {
|
||||
// Check if MI reads any unreserved physregs.
|
||||
if (Reg && MOI->readsReg() && !LIS.isReserved(Reg))
|
||||
if (Reg && MOI->readsReg() && !MRI.isReserved(Reg))
|
||||
ReadsPhysRegs = true;
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -355,7 +355,7 @@ std::auto_ptr<PBQPRAProblem> PBQPBuilderWithCoalescing::build(
|
|||
loopInfo->getLoopDepth(mbb));
|
||||
|
||||
if (cp.isPhys()) {
|
||||
if (!lis->isAllocatable(dst)) {
|
||||
if (!mf->getRegInfo().isAllocatable(dst)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue