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()
350 DomainValue *dv = nullptr; in visitSoftInstr() local
352 if (!dv) { in visitSoftInstr()
353 dv = LiveRegs[Regs.pop_back_val()]; in visitSoftInstr()
355 dv->AvailableDomains = dv->getCommonDomains(available); in visitSoftInstr()
356 assert(dv->AvailableDomains && "Domain should have been filtered"); in visitSoftInstr()
362 if (Latest == dv || Latest->Next) in visitSoftInstr()
364 if (merge(dv, Latest)) in visitSoftInstr()
376 if (!dv) { in visitSoftInstr()
377 dv = alloc(); in visitSoftInstr()
378 dv->AvailableDomains = available; in visitSoftInstr()
380 dv->Instrs.push_back(mi); in visitSoftInstr()
388 if (!LiveRegs[rx] || (mo.isDef() && LiveRegs[rx] != dv)) { in visitSoftInstr()
390 setLiveReg(rx, dv); in visitSoftInstr()