Lines Matching defs:dv

186   void collapse(DomainValue *dv, unsigned domain);
210 DomainValue *dv = Avail.empty() ?
214 dv->addDomain(domain);
215 assert(dv->Refs == 0 && "Reference count wasn't cleared");
216 assert(!dv->Next && "Chained DomainValue shouldn't have been recycled");
217 return dv;
258 /// Set LiveRegs[rx] = dv, updating reference counts.
259 void ExeDepsFix::setLiveReg(int rx, DomainValue *dv) {
263 if (LiveRegs[rx].Value == dv)
267 LiveRegs[rx].Value = retain(dv);
285 if (DomainValue *dv = LiveRegs[rx].Value) {
286 if (dv->isCollapsed())
287 dv->addDomain(domain);
288 else if (dv->hasDomain(domain))
289 collapse(dv, domain);
293 collapse(dv, dv->getFirstDomain());
304 /// registers using dv, they each get a unique collapsed DomainValue.
305 void ExeDepsFix::collapse(DomainValue *dv, unsigned domain) {
306 assert(dv->hasDomain(domain) && "Cannot collapse");
309 while (!dv->Instrs.empty())
310 TII->setExecutionDomain(dv->Instrs.pop_back_val(), domain);
311 dv->setSingleDomain(domain);
314 if (LiveRegs && dv->Refs > 1)
316 if (LiveRegs[rx].Value == dv)
616 if (DomainValue *dv = LiveRegs[rx].Value) {
617 // Bitmask of domains that dv and available have in common.
618 unsigned common = dv->getCommonDomains(available);
620 if (dv->isCollapsed()) {
669 DomainValue *dv = 0;
671 if (!dv) {
672 dv = Regs.pop_back_val().Value;
673 // Force the first dv to match the current instruction.
674 dv->AvailableDomains = dv->getCommonDomains(available);
675 assert(dv->AvailableDomains && "Domain should have been filtered");
681 if (Latest == dv || Latest->Next)
683 if (merge(dv, Latest))
692 // dv is the DomainValue we are going to use for this instruction.
693 if (!dv) {
694 dv = alloc();
695 dv->AvailableDomains = available;
697 dv->Instrs.push_back(mi);
699 // Finally set all defs and non-collapsed uses to dv. We must iterate through
708 if (!LiveRegs[rx].Value || (mo.isDef() && LiveRegs[rx].Value != dv)) {
710 setLiveReg(rx, dv);