Lines Matching defs:rx

183   void setLiveReg(int rx, DomainValue *DV);
184 void kill(int rx);
185 void force(int rx, unsigned domain);
258 /// Set LiveRegs[rx] = dv, updating reference counts.
259 void ExeDepsFix::setLiveReg(int rx, DomainValue *dv) {
260 assert(unsigned(rx) < NumRegs && "Invalid index");
263 if (LiveRegs[rx].Value == dv)
265 if (LiveRegs[rx].Value)
266 release(LiveRegs[rx].Value);
267 LiveRegs[rx].Value = retain(dv);
270 // Kill register rx, recycle or collapse any DomainValue.
271 void ExeDepsFix::kill(int rx) {
272 assert(unsigned(rx) < NumRegs && "Invalid index");
274 if (!LiveRegs[rx].Value)
277 release(LiveRegs[rx].Value);
278 LiveRegs[rx].Value = 0;
281 /// Force register rx into domain.
282 void ExeDepsFix::force(int rx, unsigned domain) {
283 assert(unsigned(rx) < NumRegs && "Invalid index");
285 if (DomainValue *dv = LiveRegs[rx].Value) {
294 assert(LiveRegs[rx].Value && "Not live after collapse?");
295 LiveRegs[rx].Value->addDomain(domain);
299 setLiveReg(rx, alloc(domain));
315 for (unsigned rx = 0; rx != NumRegs; ++rx)
316 if (LiveRegs[rx].Value == dv)
317 setLiveReg(rx, alloc(domain));
339 for (unsigned rx = 0; rx != NumRegs; ++rx)
340 if (LiveRegs[rx].Value == B)
341 setLiveReg(rx, A);
362 for (unsigned rx = 0; rx != NumRegs; ++rx) {
363 LiveRegs[rx].Value = 0;
364 LiveRegs[rx].Def = -(1 << 20);
371 int rx = regIndex(*i);
372 if (rx < 0)
377 LiveRegs[rx].Def = -1;
393 for (unsigned rx = 0; rx != NumRegs; ++rx) {
395 LiveRegs[rx].Def = std::max(LiveRegs[rx].Def, fi->second[rx].Def);
397 DomainValue *pdv = resolve(fi->second[rx].Value);
400 if (!LiveRegs[rx].Value) {
401 setLiveReg(rx, pdv);
406 if (LiveRegs[rx].Value->isCollapsed()) {
408 unsigned Domain = LiveRegs[rx].Value->getFirstDomain();
416 merge(LiveRegs[rx].Value, pdv);
418 force(rx, pdv->getFirstDomain());
468 int rx = regIndex(MI->getOperand(OpIdx).getReg());
469 if (rx < 0)
472 unsigned Clearance = CurInstr - LiveRegs[rx].Def;
515 int rx = regIndex(MO.getReg());
516 if (rx < 0)
519 // This instruction explicitly defines rx.
520 DEBUG(dbgs() << TRI->getName(RC->getRegister(rx)) << ":\t" << CurInstr
524 // Call breakDependence before setting LiveRegs[rx].Def.
529 // How many instructions since rx was last written?
530 LiveRegs[rx].Def = CurInstr;
534 kill(rx);
585 int rx = regIndex(mo.getReg());
586 if (rx < 0) continue;
587 force(rx, domain);
594 int rx = regIndex(mo.getReg());
595 if (rx < 0) continue;
596 kill(rx);
597 force(rx, domain);
614 int rx = regIndex(mo.getReg());
615 if (rx < 0) continue;
616 if (DomainValue *dv = LiveRegs[rx].Value) {
627 used.push_back(rx);
631 kill(rx);
647 int rx = *i;
648 const LiveReg &LR = LiveRegs[rx];
651 kill(rx);
706 int rx = regIndex(mo.getReg());
707 if (rx < 0) continue;
708 if (!LiveRegs[rx].Value || (mo.isDef() && LiveRegs[rx].Value != dv)) {
709 kill(rx);
710 setLiveReg(rx, dv);