Lines Matching refs:dv
197 void collapse(DomainValue *dv, unsigned domain);
223 DomainValue *dv = Avail.empty() ? in alloc() local
227 dv->addDomain(domain); in alloc()
228 assert(dv->Refs == 0 && "Reference count wasn't cleared"); in alloc()
229 assert(!dv->Next && "Chained DomainValue shouldn't have been recycled"); in alloc()
230 return dv; in alloc()
272 void ExeDepsFix::setLiveReg(int rx, DomainValue *dv) { in setLiveReg() argument
276 if (LiveRegs[rx].Value == dv) in setLiveReg()
280 LiveRegs[rx].Value = retain(dv); in setLiveReg()
298 if (DomainValue *dv = LiveRegs[rx].Value) { in force() local
299 if (dv->isCollapsed()) in force()
300 dv->addDomain(domain); in force()
301 else if (dv->hasDomain(domain)) in force()
302 collapse(dv, domain); in force()
306 collapse(dv, dv->getFirstDomain()); in force()
318 void ExeDepsFix::collapse(DomainValue *dv, unsigned domain) { in collapse() argument
319 assert(dv->hasDomain(domain) && "Cannot collapse"); in collapse()
322 while (!dv->Instrs.empty()) in collapse()
323 TII->setExecutionDomain(*dv->Instrs.pop_back_val(), domain); in collapse()
324 dv->setSingleDomain(domain); in collapse()
327 if (LiveRegs && dv->Refs > 1) in collapse()
329 if (LiveRegs[rx].Value == dv) in collapse()
624 DomainValue *dv = LiveRegs[rx].Value; in visitSoftInstr() local
625 if (dv == nullptr) in visitSoftInstr()
628 unsigned common = dv->getCommonDomains(available); in visitSoftInstr()
630 if (dv->isCollapsed()) { in visitSoftInstr()
680 DomainValue *dv = nullptr; in visitSoftInstr() local
682 if (!dv) { in visitSoftInstr()
683 dv = Regs.pop_back_val().Value; in visitSoftInstr()
685 dv->AvailableDomains = dv->getCommonDomains(available); in visitSoftInstr()
686 assert(dv->AvailableDomains && "Domain should have been filtered"); in visitSoftInstr()
692 if (Latest == dv || Latest->Next) in visitSoftInstr()
694 if (merge(dv, Latest)) in visitSoftInstr()
706 if (!dv) { in visitSoftInstr()
707 dv = alloc(); in visitSoftInstr()
708 dv->AvailableDomains = available; in visitSoftInstr()
710 dv->Instrs.push_back(mi); in visitSoftInstr()
720 if (!LiveRegs[rx].Value || (mo.isDef() && LiveRegs[rx].Value != dv)) { in visitSoftInstr()
722 setLiveReg(rx, dv); in visitSoftInstr()