Lines Matching refs:dv
26 DomainValue *dv = Avail.empty() ? new (Allocator.Allocate()) DomainValue in alloc() local
29 dv->addDomain(domain); in alloc()
30 assert(dv->Refs == 0 && "Reference count wasn't cleared"); in alloc()
31 assert(!dv->Next && "Chained DomainValue shouldn't have been recycled"); in alloc()
32 return dv; in alloc()
70 void ExecutionDomainFix::setLiveReg(int rx, DomainValue *dv) { in setLiveReg() argument
74 if (LiveRegs[rx] == dv) in setLiveReg()
78 LiveRegs[rx] = retain(dv); in setLiveReg()
94 if (DomainValue *dv = LiveRegs[rx]) { in force() local
95 if (dv->isCollapsed()) in force()
96 dv->addDomain(domain); in force()
97 else if (dv->hasDomain(domain)) in force()
98 collapse(dv, domain); in force()
102 collapse(dv, dv->getFirstDomain()); in force()
112 void ExecutionDomainFix::collapse(DomainValue *dv, unsigned domain) { in collapse() argument
113 assert(dv->hasDomain(domain) && "Cannot collapse"); in collapse()
116 while (!dv->Instrs.empty()) in collapse()
117 TII->setExecutionDomain(*dv->Instrs.pop_back_val(), domain); in collapse()
118 dv->setSingleDomain(domain); in collapse()
121 if (!LiveRegs.empty() && dv->Refs > 1) in collapse()
123 if (LiveRegs[rx] == dv) in collapse()
297 DomainValue *dv = LiveRegs[rx]; in visitSoftInstr() local
298 if (dv == nullptr) in visitSoftInstr()
301 unsigned common = dv->getCommonDomains(available); in visitSoftInstr()
303 if (dv->isCollapsed()) { in visitSoftInstr()
349 DomainValue *dv = nullptr; in visitSoftInstr() local
351 if (!dv) { in visitSoftInstr()
352 dv = LiveRegs[Regs.pop_back_val()]; in visitSoftInstr()
354 dv->AvailableDomains = dv->getCommonDomains(available); in visitSoftInstr()
355 assert(dv->AvailableDomains && "Domain should have been filtered"); in visitSoftInstr()
361 if (Latest == dv || Latest->Next) in visitSoftInstr()
363 if (merge(dv, Latest)) in visitSoftInstr()
375 if (!dv) { in visitSoftInstr()
376 dv = alloc(); in visitSoftInstr()
377 dv->AvailableDomains = available; in visitSoftInstr()
379 dv->Instrs.push_back(mi); in visitSoftInstr()
387 if (!LiveRegs[rx] || (mo.isDef() && LiveRegs[rx] != dv)) { in visitSoftInstr()
389 setLiveReg(rx, dv); in visitSoftInstr()