Lines Matching refs:rx
194 void setLiveReg(int rx, DomainValue *DV);
195 void kill(int rx);
196 void force(int rx, unsigned domain);
272 void ExeDepsFix::setLiveReg(int rx, DomainValue *dv) { in setLiveReg() argument
273 assert(unsigned(rx) < NumRegs && "Invalid index"); in setLiveReg()
276 if (LiveRegs[rx].Value == dv) in setLiveReg()
278 if (LiveRegs[rx].Value) in setLiveReg()
279 release(LiveRegs[rx].Value); in setLiveReg()
280 LiveRegs[rx].Value = retain(dv); in setLiveReg()
284 void ExeDepsFix::kill(int rx) { in kill() argument
285 assert(unsigned(rx) < NumRegs && "Invalid index"); in kill()
287 if (!LiveRegs[rx].Value) in kill()
290 release(LiveRegs[rx].Value); in kill()
291 LiveRegs[rx].Value = nullptr; in kill()
295 void ExeDepsFix::force(int rx, unsigned domain) { in force() argument
296 assert(unsigned(rx) < NumRegs && "Invalid index"); in force()
298 if (DomainValue *dv = LiveRegs[rx].Value) { in force()
307 assert(LiveRegs[rx].Value && "Not live after collapse?"); in force()
308 LiveRegs[rx].Value->addDomain(domain); in force()
312 setLiveReg(rx, alloc(domain)); in force()
328 for (unsigned rx = 0; rx != NumRegs; ++rx) in collapse() local
329 if (LiveRegs[rx].Value == dv) in collapse()
330 setLiveReg(rx, alloc(domain)); in collapse()
351 for (unsigned rx = 0; rx != NumRegs; ++rx) { in merge() local
353 if (LiveRegs[rx].Value == B) in merge()
354 setLiveReg(rx, A); in merge()
376 for (unsigned rx = 0; rx != NumRegs; ++rx) { in enterBasicBlock() local
377 LiveRegs[rx].Value = nullptr; in enterBasicBlock()
378 LiveRegs[rx].Def = -(1 << 20); in enterBasicBlock()
384 for (int rx : regIndices(LI.PhysReg)) { in enterBasicBlock() local
388 LiveRegs[rx].Def = -1; in enterBasicBlock()
405 for (unsigned rx = 0; rx != NumRegs; ++rx) { in enterBasicBlock() local
407 LiveRegs[rx].Def = std::max(LiveRegs[rx].Def, fi->second[rx].Def); in enterBasicBlock()
409 DomainValue *pdv = resolve(fi->second[rx].Value); in enterBasicBlock()
412 if (!LiveRegs[rx].Value) { in enterBasicBlock()
413 setLiveReg(rx, pdv); in enterBasicBlock()
418 if (LiveRegs[rx].Value->isCollapsed()) { in enterBasicBlock()
420 unsigned Domain = LiveRegs[rx].Value->getFirstDomain(); in enterBasicBlock()
428 merge(LiveRegs[rx].Value, pdv); in enterBasicBlock()
430 force(rx, pdv->getFirstDomain()); in enterBasicBlock()
481 for (int rx : regIndices(reg)) { in shouldBreakDependence() local
482 unsigned Clearance = CurInstr - LiveRegs[rx].Def; in shouldBreakDependence()
527 for (int rx : regIndices(MO.getReg())) { in processDefs() local
529 DEBUG(dbgs() << TRI->getName(RC->getRegister(rx)) << ":\t" << CurInstr in processDefs()
539 LiveRegs[rx].Def = CurInstr; in processDefs()
543 kill(rx); in processDefs()
594 for (int rx : regIndices(mo.getReg())) { in visitHardInstr() local
595 force(rx, domain); in visitHardInstr()
603 for (int rx : regIndices(mo.getReg())) { in visitHardInstr() local
604 kill(rx); in visitHardInstr()
605 force(rx, domain); in visitHardInstr()
623 for (int rx : regIndices(mo.getReg())) { in visitSoftInstr() local
624 DomainValue *dv = LiveRegs[rx].Value; in visitSoftInstr()
637 used.push_back(rx); in visitSoftInstr()
641 kill(rx); in visitSoftInstr()
657 int rx = *i; in visitSoftInstr() local
659 const LiveReg &LR = LiveRegs[rx]; in visitSoftInstr()
662 kill(rx); in visitSoftInstr()
719 for (int rx : regIndices(mo.getReg())) { in visitSoftInstr() local
720 if (!LiveRegs[rx].Value || (mo.isDef() && LiveRegs[rx].Value != dv)) { in visitSoftInstr()
721 kill(rx); in visitSoftInstr()
722 setLiveReg(rx, dv); in visitSoftInstr()