• Home
  • Raw
  • Download

Lines Matching refs:VirtReg

72 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()
99 bool LiveRegMatrix::checkRegMaskInterference(LiveInterval &VirtReg, in checkRegMaskInterference() argument
104 if (RegMaskVirtReg != VirtReg.reg || RegMaskTag != UserTag) { in checkRegMaskInterference()
105 RegMaskVirtReg = VirtReg.reg; in checkRegMaskInterference()
108 LIS->checkRegMaskInterference(VirtReg, RegMaskUsable); in checkRegMaskInterference()
117 bool LiveRegMatrix::checkRegUnitInterference(LiveInterval &VirtReg, in checkRegUnitInterference() argument
119 if (VirtReg.empty()) in checkRegUnitInterference()
121 CoalescerPair CP(VirtReg.reg, PhysReg, *TRI); in checkRegUnitInterference()
123 if (VirtReg.overlaps(LIS->getRegUnit(*Units), CP, *LIS->getSlotIndexes())) in checkRegUnitInterference()
128 LiveIntervalUnion::Query &LiveRegMatrix::query(LiveInterval &VirtReg, in query() argument
131 Q.init(UserTag, &VirtReg, &Matrix[RegUnit]); in query()
136 LiveRegMatrix::checkInterference(LiveInterval &VirtReg, unsigned PhysReg) { in checkInterference() argument
137 if (VirtReg.empty()) in checkInterference()
141 if (checkRegMaskInterference(VirtReg, PhysReg)) in checkInterference()
145 if (checkRegUnitInterference(VirtReg, PhysReg)) in checkInterference()
150 if (query(VirtReg, *Units).checkInterference()) in checkInterference()