Lines Matching refs:DestReg
43 unsigned DestReg;
58 PHIInfoElementT *findPHIInfoElement(unsigned DestReg);
65 void addDest(unsigned DestReg, const DebugLoc &DL);
67 void deleteDef(unsigned DestReg);
68 void addSource(unsigned DestReg, unsigned SourceReg,
70 void removeSource(unsigned DestReg, unsigned SourceReg,
73 unsigned &DestReg);
75 unsigned getNumSources(unsigned DestReg);
112 return Info->DestReg; in phiInfoElementGetDest()
117 Info->DestReg = NewDef; in phiInfoElementSetDef()
159 PHILinearize::findPHIInfoElement(unsigned DestReg) { in findPHIInfoElement() argument
161 if (phiInfoElementGetDest(I) == DestReg) { in findPHIInfoElement()
196 void PHILinearize::addDest(unsigned DestReg, const DebugLoc &DL) { in addDest() argument
197 assert(findPHIInfoElement(DestReg) == nullptr && "Dest already exists"); in addDest()
200 NewElement->DestReg = DestReg; in addDest()
210 void PHILinearize::deleteDef(unsigned DestReg) { in deleteDef() argument
211 PHIInfoElementT *InfoElement = findPHIInfoElement(DestReg); in deleteDef()
216 void PHILinearize::addSource(unsigned DestReg, unsigned SourceReg, in addSource() argument
218 phiInfoElementAddSource(findPHIInfoElement(DestReg), SourceReg, SourceMBB); in addSource()
221 void PHILinearize::removeSource(unsigned DestReg, unsigned SourceReg, in removeSource() argument
223 phiInfoElementRemoveSource(findPHIInfoElement(DestReg), SourceReg, SourceMBB); in removeSource()
227 unsigned &DestReg) { in findDest() argument
231 DestReg = phiInfoElementGetDest(InfoElement); in findDest()
238 unsigned DestReg; in isSource() local
239 return findDest(Reg, SourceMBB, DestReg); in isSource()
242 unsigned PHILinearize::getNumSources(unsigned DestReg) { in getNumSources() argument
243 return phiInfoElementGetSources(findPHIInfoElement(DestReg)).size(); in getNumSources()
252 dbgs() << "Dest: " << printReg(Element.DestReg, TRI) in dump()
1141 void createEntryPHI(LinearizedRegion *CurrentRegion, unsigned DestReg);
1167 LinearizedRegion *InnerRegion, unsigned DestReg,
1375 unsigned DestReg = getPHIDestReg(PHI); in storePHILinearizationInfo() local
1377 MRI->createVirtualRegister(MRI->getRegClass(DestReg)); in storePHILinearizationInfo()
1535 auto DestReg = getPHIDestReg(PHI); in replaceEntryPHI() local
1536 replaceRegisterWith(DestReg, CombinedSourceReg); in replaceEntryPHI()
1922 unsigned DestReg, in insertChainedPHI() argument
1934 InnerRegion->replaceRegisterInsideRegion(SourceReg, DestReg, true, MRI); in insertChainedPHI()
1938 storePHILinearizationInfoDest(DestReg, *DefInstr); in insertChainedPHI()
1941 PHIInfo.removeSource(DestReg, SourceReg, CodeBB); in insertChainedPHI()
1948 InnerRegion->replaceRegisterOutsideRegion(SourceReg, DestReg, false, MRI); in insertChainedPHI()
1950 const TargetRegisterClass *RegClass = MRI->getRegClass(DestReg); in insertChainedPHI()
1952 bool IsLastDef = PHIInfo.getNumSources(DestReg) == 1; in insertChainedPHI()
1954 insertMergePHI(IfBB, InnerRegion->getExit(), MergeBB, DestReg, NextDestReg, in insertChainedPHI()
1957 PHIInfo.removeSource(DestReg, SourceReg, CodeBB); in insertChainedPHI()
1962 PHIInfo.deleteDef(DestReg); in insertChainedPHI()
1964 PHIInfo.replaceDef(DestReg, NextDestReg); in insertChainedPHI()
2033 unsigned DestReg; in rewriteLiveOutRegs() local
2034 PHIInfo.findDest(SI, CodeBB, DestReg); in rewriteLiveOutRegs()
2035 insertChainedPHI(IfBB, CodeBB, MergeBB, InnerRegion, DestReg, SI); in rewriteLiveOutRegs()
2051 unsigned DestReg = *DRI; in prunePHIInfo() local
2052 auto SE = PHIInfo.sources_end(DestReg); in prunePHIInfo()
2056 for (auto SRI = PHIInfo.sources_begin(DestReg); SRI != SE; ++SRI) { in prunePHIInfo()
2067 for (auto SRI = PHIInfo.sources_begin(DestReg); SRI != SE; ++SRI) { in prunePHIInfo()
2073 ElimiatedSources.push_back(std::tuple(DestReg, SourceReg, SourceMBB)); in prunePHIInfo()
2089 unsigned DestReg) { in createEntryPHI() argument
2097 auto SE = PHIInfo.sources_end(DestReg); in createEntryPHI()
2099 for (auto SRI = PHIInfo.sources_begin(DestReg); SRI != SE; ++SRI) { in createEntryPHI()
2104 auto SRI = PHIInfo.sources_begin(DestReg); in createEntryPHI()
2106 replaceRegisterWith(DestReg, SourceReg); in createEntryPHI()
2110 TII->get(TargetOpcode::PHI), DestReg); in createEntryPHI()
2111 LLVM_DEBUG(dbgs() << "Entry PHI " << printReg(DestReg, TRI) << " = PHI("); in createEntryPHI()
2115 for (auto SRI = PHIInfo.sources_begin(DestReg); SRI != SE; ++SRI) { in createEntryPHI()
2169 unsigned DestReg = *DRI; in createEntryPHIs() local
2170 createEntryPHI(CurrentRegion, DestReg); in createEntryPHIs()
2213 unsigned DestReg = *DRI; in resolvePHIInfos() local
2214 LLVM_DEBUG(dbgs() << "DestReg: " << printReg(DestReg, TRI) << "\n"); in resolvePHIInfos()
2215 auto SRI = PHIInfo.sources_begin(DestReg); in resolvePHIInfos()
2217 LLVM_DEBUG(dbgs() << "DestReg: " << printReg(DestReg, TRI) in resolvePHIInfos()
2220 assert(PHIInfo.sources_end(DestReg) == ++SRI && in resolvePHIInfos()
2222 replaceRegisterWith(DestReg, SourceReg); in resolvePHIInfos()