Lines Matching defs:rx

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