Home
last modified time | relevance | path

Searched refs:VirtReg (Results 1 – 21 of 21) sorted by relevance

/external/llvm/lib/CodeGen/
DLiveRegMatrix.cpp72 void LiveRegMatrix::assign(LiveInterval &VirtReg, unsigned PhysReg) { in assign() argument
73 DEBUG(dbgs() << "assigning " << PrintReg(VirtReg.reg, TRI) in assign()
75 assert(!VRM->hasPhys(VirtReg.reg) && "Duplicate VirtReg assignment"); in assign()
76 VRM->assignVirt2Phys(VirtReg.reg, PhysReg); in assign()
80 Matrix[*Units].unify(VirtReg); in assign()
86 void LiveRegMatrix::unassign(LiveInterval &VirtReg) { in unassign() argument
87 unsigned PhysReg = VRM->getPhys(VirtReg.reg); in unassign()
88 DEBUG(dbgs() << "unassigning " << PrintReg(VirtReg.reg, TRI) in unassign()
90 VRM->clearVirt(VirtReg.reg); in unassign()
93 Matrix[*Units].extract(VirtReg); in unassign()
[all …]
DLiveIntervalUnion.cpp30 void LiveIntervalUnion::unify(LiveInterval &VirtReg) { in unify() argument
31 if (VirtReg.empty()) in unify()
36 LiveInterval::iterator RegPos = VirtReg.begin(); in unify()
37 LiveInterval::iterator RegEnd = VirtReg.end(); in unify()
41 SegPos.insert(RegPos->start, RegPos->end, &VirtReg); in unify()
51 SegPos.insert(RegEnd->start, RegEnd->end, &VirtReg); in unify()
53 SegPos.insert(RegPos->start, RegPos->end, &VirtReg); in unify()
57 void LiveIntervalUnion::extract(LiveInterval &VirtReg) { in extract() argument
58 if (VirtReg.empty()) in extract()
63 LiveInterval::iterator RegPos = VirtReg.begin(); in extract()
[all …]
DRegAllocBase.cpp84 while (LiveInterval *VirtReg = dequeue()) { in allocatePhysRegs() local
85 assert(!VRM->hasPhys(VirtReg->reg) && "Register already assigned"); in allocatePhysRegs()
88 if (MRI->reg_nodbg_empty(VirtReg->reg)) { in allocatePhysRegs()
89 DEBUG(dbgs() << "Dropping unused " << *VirtReg << '\n'); in allocatePhysRegs()
90 LIS->removeInterval(VirtReg->reg); in allocatePhysRegs()
101 << MRI->getRegClass(VirtReg->reg)->getName() in allocatePhysRegs()
102 << ':' << PrintReg(VirtReg->reg) << ' ' << *VirtReg << '\n'); in allocatePhysRegs()
105 unsigned AvailablePhysReg = selectOrSplit(*VirtReg, SplitVRegs); in allocatePhysRegs()
112 for (MachineRegisterInfo::reg_iterator I = MRI->reg_begin(VirtReg->reg); in allocatePhysRegs()
121 VRM->assignVirt2Phys(VirtReg->reg, in allocatePhysRegs()
[all …]
DRegAllocFast.cpp72 unsigned VirtReg; // Virtual register number. member
78 : LastUse(0), VirtReg(v), PhysReg(0), LastOpNum(0), Dirty(false) {} in LiveReg()
81 return TargetRegisterInfo::virtReg2Index(VirtReg); in getSparseSetIndex()
150 int getStackSpaceFor(unsigned VirtReg, const TargetRegisterClass *RC);
155 void killVirtReg(unsigned VirtReg);
157 void spillVirtReg(MachineBasicBlock::iterator MI, unsigned VirtReg);
163 LiveRegMap::iterator findLiveVirtReg(unsigned VirtReg) { in findLiveVirtReg() argument
164 return LiveVirtRegs.find(TargetRegisterInfo::virtReg2Index(VirtReg)); in findLiveVirtReg()
166 LiveRegMap::const_iterator findLiveVirtReg(unsigned VirtReg) const { in findLiveVirtReg()
167 return LiveVirtRegs.find(TargetRegisterInfo::virtReg2Index(VirtReg)); in findLiveVirtReg()
[all …]
DRegAllocBasic.cpp105 virtual unsigned selectOrSplit(LiveInterval &VirtReg,
114 bool spillInterferences(LiveInterval &VirtReg, unsigned PhysReg,
169 bool RABasic::spillInterferences(LiveInterval &VirtReg, unsigned PhysReg, in spillInterferences() argument
177 LiveIntervalUnion::Query &Q = Matrix->query(VirtReg, *Units); in spillInterferences()
183 if (!Intf->isSpillable() || Intf->weight > VirtReg.weight) in spillInterferences()
189 " interferences with " << VirtReg << "\n"); in spillInterferences()
223 unsigned RABasic::selectOrSplit(LiveInterval &VirtReg, in selectOrSplit() argument
229 AllocationOrder Order(VirtReg.reg, *VRM, RegClassInfo); in selectOrSplit()
232 switch (Matrix->checkInterference(VirtReg, PhysReg)) { in selectOrSplit()
251 if (!spillInterferences(VirtReg, *PhysRegI, SplitVRegs)) in selectOrSplit()
[all …]
DRegAllocGreedy.cpp137 LiveRangeStage getStage(const LiveInterval &VirtReg) const { in getStage()
138 return ExtraRegInfo[VirtReg.reg].Stage; in getStage()
141 void setStage(const LiveInterval &VirtReg, LiveRangeStage Stage) { in setStage() argument
143 ExtraRegInfo[VirtReg.reg].Stage = Stage; in setStage()
354 bool RAGreedy::LRE_CanEraseVirtReg(unsigned VirtReg) { in LRE_CanEraseVirtReg() argument
355 if (VRM->hasPhys(VirtReg)) { in LRE_CanEraseVirtReg()
356 Matrix->unassign(LIS->getInterval(VirtReg)); in LRE_CanEraseVirtReg()
364 void RAGreedy::LRE_WillShrinkVirtReg(unsigned VirtReg) { in LRE_WillShrinkVirtReg() argument
365 if (!VRM->hasPhys(VirtReg)) in LRE_WillShrinkVirtReg()
369 LiveInterval &LI = LIS->getInterval(VirtReg); in LRE_WillShrinkVirtReg()
[all …]
DLiveIntervalUnion.h88 void unify(LiveInterval &VirtReg);
91 void extract(LiveInterval &VirtReg);
108 LiveInterval *VirtReg; variable
118 Query(): LiveUnion(), VirtReg(), Tag(0), UserTag(0) {} in Query()
121 LiveUnion(LIU), VirtReg(VReg), CheckedFirstInterference(false), in Query()
127 VirtReg = NULL; in clear()
138 if (UserTag == UTag && VirtReg == VReg && in init()
145 VirtReg = VReg; in init()
151 assert(VirtReg && "uninitialized"); in virtReg()
152 return *VirtReg; in virtReg()
DLiveRegMatrix.h106 InterferenceKind checkInterference(LiveInterval &VirtReg, unsigned PhysReg);
111 void assign(LiveInterval &VirtReg, unsigned PhysReg);
116 void unassign(LiveInterval &VirtReg);
128 bool checkRegMaskInterference(LiveInterval &VirtReg, unsigned PhysReg = 0);
133 bool checkRegUnitInterference(LiveInterval &VirtReg, unsigned PhysReg);
139 LiveIntervalUnion::Query &query(LiveInterval &VirtReg, unsigned RegUnit);
DVirtRegMap.h133 bool hasPreferredPhys(unsigned VirtReg) { in hasPreferredPhys() argument
134 return getPhys(VirtReg) == getRegAllocPref(VirtReg); in hasPreferredPhys()
151 unsigned getOriginal(unsigned VirtReg) const { in getOriginal() argument
152 unsigned Orig = getPreSplitReg(VirtReg); in getOriginal()
153 return Orig ? Orig : VirtReg; in getOriginal()
DAllocationOrder.cpp25 AllocationOrder::AllocationOrder(unsigned VirtReg, in AllocationOrder() argument
29 const TargetRegisterClass *RC = VRM.getRegInfo().getRegClass(VirtReg); in AllocationOrder()
31 VRM.getRegInfo().getRegAllocationHint(VirtReg); in AllocationOrder()
DVirtRegMap.cpp228 unsigned VirtReg = TargetRegisterInfo::index2VirtReg(Idx); in addMBBLiveIns() local
229 if (MRI->reg_nodbg_empty(VirtReg)) in addMBBLiveIns()
231 LiveInterval &LI = LIS->getInterval(VirtReg); in addMBBLiveIns()
236 unsigned PhysReg = VRM->getPhys(VirtReg); in addMBBLiveIns()
278 unsigned VirtReg = MO.getReg(); in rewrite() local
279 unsigned PhysReg = VRM->getPhys(VirtReg); in rewrite()
DRegisterCoalescer.h68 CoalescerPair(unsigned VirtReg, unsigned PhysReg, in CoalescerPair() argument
70 : TRI(tri), DstReg(PhysReg), SrcReg(VirtReg), DstIdx(0), SrcIdx(0), in CoalescerPair()
DLiveDebugVariables.cpp304 UserValue *lookupVirtReg(unsigned VirtReg);
335 void mapVirtReg(unsigned VirtReg, UserValue *EC);
429 void LDVImpl::mapVirtReg(unsigned VirtReg, UserValue *EC) { in mapVirtReg() argument
430 assert(TargetRegisterInfo::isVirtualRegister(VirtReg) && "Only map VirtRegs"); in mapVirtReg()
431 UserValue *&Leader = virtRegToEqClass[VirtReg]; in mapVirtReg()
435 UserValue *LDVImpl::lookupVirtReg(unsigned VirtReg) { in lookupVirtReg() argument
436 if (UserValue *UV = virtRegToEqClass.lookup(VirtReg)) in lookupVirtReg()
903 unsigned VirtReg = Loc.getReg(); in rewriteLocations() local
904 if (VRM.isAssignedReg(VirtReg) && in rewriteLocations()
905 TargetRegisterInfo::isPhysicalRegister(VRM.getPhys(VirtReg))) { in rewriteLocations()
[all …]
DAllocationOrder.h38 AllocationOrder(unsigned VirtReg,
DRegAllocBase.h92 virtual unsigned selectOrSplit(LiveInterval &VirtReg,
DInlineSpiller.cpp833 bool InlineSpiller::reMaterializeFor(LiveInterval &VirtReg, in reMaterializeFor() argument
836 VNInfo *ParentVNI = VirtReg.getVNInfoAt(UseIdx.getBaseIndex()); in reMaterializeFor()
842 if (MO.isReg() && MO.isUse() && MO.getReg() == VirtReg.reg) in reMaterializeFor()
858 markValueUsed(&VirtReg, ParentVNI); in reMaterializeFor()
867 MIBundleOperands(MI).analyzeVirtReg(VirtReg.reg, &Ops); in reMaterializeFor()
869 markValueUsed(&VirtReg, ParentVNI); in reMaterializeFor()
896 if (MO.isReg() && MO.isUse() && MO.getReg() == VirtReg.reg) { in reMaterializeFor()
DPHIElimination.cpp176 static bool isImplicitlyDefined(unsigned VirtReg, in isImplicitlyDefined() argument
178 for (MachineRegisterInfo::def_iterator DI = MRI->def_begin(VirtReg), in isImplicitlyDefined()
DPrologEpilogInserter.cpp821 unsigned VirtReg = 0; in scavengeFrameVirtualRegs() local
841 if (Reg != VirtReg) { in scavengeFrameVirtualRegs()
847 VirtReg = Reg; in scavengeFrameVirtualRegs()
DMachineTraceMetrics.cpp529 DataDep(const MachineRegisterInfo *MRI, unsigned VirtReg, unsigned UseOp) in DataDep()
531 assert(TargetRegisterInfo::isVirtualRegister(VirtReg)); in DataDep()
532 MachineRegisterInfo::def_iterator DefI = MRI->def_begin(VirtReg); in DataDep()
/external/llvm/include/llvm/CodeGen/
DScheduleDAGInstrs.h101 unsigned VirtReg; member
104 VReg2SUnit(unsigned reg, SUnit *su): VirtReg(reg), SU(su) {} in VReg2SUnit()
107 return TargetRegisterInfo::virtReg2Index(VirtReg); in getSparseSetIndex()
/external/llvm/docs/
DCodeGenerator.rst1235 unsigned VirtReg = TargetRegisterInfo::index2VirtReg(i);
1236 stuff(VirtReg);
2142 OperandTy: VirtReg, | VirtReg, UnsImm, VirtReg, SignExtImm PhysReg