Lines Matching refs:VirtReg
97 void LiveRegMatrix::assign(LiveInterval &VirtReg, unsigned PhysReg) { in assign() argument
98 DEBUG(dbgs() << "assigning " << PrintReg(VirtReg.reg, TRI) in assign()
100 assert(!VRM->hasPhys(VirtReg.reg) && "Duplicate VirtReg assignment"); in assign()
101 VRM->assignVirt2Phys(VirtReg.reg, PhysReg); in assign()
103 foreachUnit(TRI, VirtReg, PhysReg, [&](unsigned Unit, in assign()
106 Matrix[Unit].unify(VirtReg, Range); in assign()
114 void LiveRegMatrix::unassign(LiveInterval &VirtReg) { in unassign() argument
115 unsigned PhysReg = VRM->getPhys(VirtReg.reg); in unassign()
116 DEBUG(dbgs() << "unassigning " << PrintReg(VirtReg.reg, TRI) in unassign()
118 VRM->clearVirt(VirtReg.reg); in unassign()
120 foreachUnit(TRI, VirtReg, PhysReg, [&](unsigned Unit, in unassign()
123 Matrix[Unit].extract(VirtReg, Range); in unassign()
139 bool LiveRegMatrix::checkRegMaskInterference(LiveInterval &VirtReg, in checkRegMaskInterference() argument
144 if (RegMaskVirtReg != VirtReg.reg || RegMaskTag != UserTag) { in checkRegMaskInterference()
145 RegMaskVirtReg = VirtReg.reg; in checkRegMaskInterference()
148 LIS->checkRegMaskInterference(VirtReg, RegMaskUsable); in checkRegMaskInterference()
157 bool LiveRegMatrix::checkRegUnitInterference(LiveInterval &VirtReg, in checkRegUnitInterference() argument
159 if (VirtReg.empty()) in checkRegUnitInterference()
161 CoalescerPair CP(VirtReg.reg, PhysReg, *TRI); in checkRegUnitInterference()
163 bool Result = foreachUnit(TRI, VirtReg, PhysReg, [&](unsigned Unit, in checkRegUnitInterference()
171 LiveIntervalUnion::Query &LiveRegMatrix::query(LiveInterval &VirtReg, in query() argument
174 Q.init(UserTag, &VirtReg, &Matrix[RegUnit]); in query()
179 LiveRegMatrix::checkInterference(LiveInterval &VirtReg, unsigned PhysReg) { in checkInterference() argument
180 if (VirtReg.empty()) in checkInterference()
184 if (checkRegMaskInterference(VirtReg, PhysReg)) in checkInterference()
188 if (checkRegUnitInterference(VirtReg, PhysReg)) in checkInterference()
193 if (query(VirtReg, *Units).checkInterference()) in checkInterference()