Lines Matching full:rx

70 void ExecutionDomainFix::setLiveReg(int rx, DomainValue *dv) {  in setLiveReg()  argument
71 assert(unsigned(rx) < NumRegs && "Invalid index"); in setLiveReg()
74 if (LiveRegs[rx] == dv) in setLiveReg()
76 if (LiveRegs[rx]) in setLiveReg()
77 release(LiveRegs[rx]); in setLiveReg()
78 LiveRegs[rx] = retain(dv); in setLiveReg()
81 void ExecutionDomainFix::kill(int rx) { in kill() argument
82 assert(unsigned(rx) < NumRegs && "Invalid index"); in kill()
84 if (!LiveRegs[rx]) in kill()
87 release(LiveRegs[rx]); in kill()
88 LiveRegs[rx] = nullptr; in kill()
91 void ExecutionDomainFix::force(int rx, unsigned domain) { in force() argument
92 assert(unsigned(rx) < NumRegs && "Invalid index"); in force()
94 if (DomainValue *dv = LiveRegs[rx]) { in force()
103 assert(LiveRegs[rx] && "Not live after collapse?"); in force()
104 LiveRegs[rx]->addDomain(domain); in force()
108 setLiveReg(rx, alloc(domain)); in force()
122 for (unsigned rx = 0; rx != NumRegs; ++rx) in collapse() local
123 if (LiveRegs[rx] == dv) in collapse()
124 setLiveReg(rx, alloc(domain)); in collapse()
144 for (unsigned rx = 0; rx != NumRegs; ++rx) { in merge() local
146 if (LiveRegs[rx] == B) in merge()
147 setLiveReg(rx, A); in merge()
178 for (unsigned rx = 0; rx != NumRegs; ++rx) { in enterBasicBlock() local
179 DomainValue *pdv = resolve(Incoming[rx]); in enterBasicBlock()
182 if (!LiveRegs[rx]) { in enterBasicBlock()
183 setLiveReg(rx, pdv); in enterBasicBlock()
188 if (LiveRegs[rx]->isCollapsed()) { in enterBasicBlock()
190 unsigned Domain = LiveRegs[rx]->getFirstDomain(); in enterBasicBlock()
198 merge(LiveRegs[rx], pdv); in enterBasicBlock()
200 force(rx, pdv->getFirstDomain()); in enterBasicBlock()
246 for (int rx : regIndices(MO.getReg())) { in processDefs() local
247 // This instruction explicitly defines rx. in processDefs()
248 LLVM_DEBUG(dbgs() << printReg(RC->getRegister(rx), TRI) << ":\t" << *MI); in processDefs()
252 kill(rx); in processDefs()
265 for (int rx : regIndices(mo.getReg())) { in visitHardInstr() local
266 force(rx, domain); in visitHardInstr()
275 for (int rx : regIndices(mo.getReg())) { in visitHardInstr() local
276 kill(rx); in visitHardInstr()
277 force(rx, domain); in visitHardInstr()
296 for (int rx : regIndices(mo.getReg())) { in visitSoftInstr() local
297 DomainValue *dv = LiveRegs[rx]; in visitSoftInstr()
311 used.push_back(rx); in visitSoftInstr()
315 kill(rx); in visitSoftInstr()
330 for (int rx : used) { in visitSoftInstr() local
332 DomainValue *&LR = LiveRegs[rx]; in visitSoftInstr()
335 kill(rx); in visitSoftInstr()
340 const int Def = RDA->getReachingDef(mi, RC->getRegister(rx)); in visitSoftInstr()
344 Regs.insert(I, rx); in visitSoftInstr()
386 for (int rx : regIndices(mo.getReg())) { in visitSoftInstr() local
387 if (!LiveRegs[rx] || (mo.isDef() && LiveRegs[rx] != dv)) { in visitSoftInstr()
388 kill(rx); in visitSoftInstr()
389 setLiveReg(rx, dv); in visitSoftInstr()