Lines Matching refs:RI
148 CHRScope(RegInfo RI) : BranchInsertPoint(nullptr) { in CHRScope() argument
149 assert(RI.R && "Null RegionIn"); in CHRScope()
150 RegInfos.push_back(RI); in CHRScope()
201 for (RegInfo &RI : RegInfos) in addSub()
202 if (RI.R == SubIn->getParentRegion()) { in addSub()
218 RegInfos, [&Boundary](const RegInfo &RI) { return Boundary == RI.R; }); in split() argument
223 for (const RegInfo &RI : TailRegInfos) in split() local
224 TailRegionSet.insert(RI.R); in split()
235 [&Parent](const RegInfo &RI) { return Parent == RI.R; }) && in split() argument
250 for (const RegInfo &RI : RegInfos) in contains() local
251 if (RI.R->contains(Parent)) in contains()
293 : F(Fin), BFI(BFIin), DT(DTin), PSI(PSIin), RI(RIin), ORE(OREin) {} in CHR()
308 Region *R = RI.getTopLevelRegion(); in findScopes()
377 RegionInfo &RI; member in __anone1ce48180111::CHR
448 for (const RegInfo &RI : RegInfos) { in print() local
449 OS << RI.R->getNameStr(); in print()
450 if (RI.HasBranch) in print()
452 if (RI.Selects.size() > 0) in print()
453 OS << " S" << RI.Selects.size(); in print()
679 static Instruction* getBranchInsertPoint(RegInfo &RI) { in getBranchInsertPoint() argument
680 Region *R = RI.R; in getBranchInsertPoint()
685 for (SelectInst *SI : RI.Selects) { in getBranchInsertPoint()
698 for (SelectInst *SI : RI.Selects) { in getBranchInsertPoint()
732 bool EntryInSubregion = RI.getRegionFor(Entry) != R; in findScope()
772 RegInfo RI(R); in findScope() local
773 RI.HasBranch = checkBiasedBranch( in findScope()
776 Result = new CHRScope(RI); in findScope()
780 if (!RI.HasBranch) { in findScope()
819 auto AddSelects = [&](RegInfo &RI) { in findScope() argument
821 if (checkBiasedSelect(SI, RI.R, in findScope()
825 RI.Selects.push_back(SI); in findScope()
834 RegInfo RI(R); in findScope() local
835 AddSelects(RI); in findScope()
836 Result = new CHRScope(RI); in findScope()
874 RegInfo &RI = Scope->RegInfos[0]; in checkScopeHoistable() local
875 Region *R = RI.R; in checkScopeHoistable()
877 auto *Branch = RI.HasBranch ? in checkScopeHoistable()
879 SmallVector<SelectInst *, 8> &Selects = RI.Selects; in checkScopeHoistable()
880 if (RI.HasBranch || !Selects.empty()) { in checkScopeHoistable()
881 Instruction *InsertPoint = getBranchInsertPoint(RI); in checkScopeHoistable()
916 InsertPoint = getBranchInsertPoint(RI); in checkScopeHoistable()
918 if (RI.HasBranch && InsertPoint != Branch) { in checkScopeHoistable()
948 if (RI.HasBranch) { in checkScopeHoistable()
965 if (RI.HasBranch) { in checkScopeHoistable()
1025 static DenseSet<Value *> getCHRConditionValuesForRegion(RegInfo &RI) { in getCHRConditionValuesForRegion() argument
1027 if (RI.HasBranch) { in getCHRConditionValuesForRegion()
1028 auto *BI = cast<BranchInst>(RI.R->getEntry()->getTerminator()); in getCHRConditionValuesForRegion()
1031 for (SelectInst *SI : RI.Selects) { in getCHRConditionValuesForRegion()
1108 for (RegInfo &RI : Scope->RegInfos) in getSelectsInScope()
1109 for (SelectInst *SI : RI.Selects) in getSelectsInScope()
1150 for (RegInfo &RI : RegInfos) { in splitScope()
1151 Instruction *InsertPoint = getBranchInsertPoint(RI); in splitScope()
1152 DenseSet<Value *> ConditionValues = getCHRConditionValuesForRegion(RI); in splitScope()
1159 if (RI.R == RegInfos[0].R) { in splitScope()
1164 << RI.R->getNameStr() << "\n"); in splitScope()
1172 RI.R->getEntry()->getTerminator()) in splitScope()
1192 << RI.R->getNameStr() << "\n"); in splitScope()
1195 CHRScope *Tail = Scope->split(RI.R); in splitScope()
1208 RI.R->getEntry()->getTerminator()) in splitScope()
1291 for (RegInfo &RI : Scope->RegInfos) { in classifyBiasedScopes()
1292 if (RI.HasBranch) { in classifyBiasedScopes()
1293 Region *R = RI.R; in classifyBiasedScopes()
1301 for (SelectInst *SI : RI.Selects) { in classifyBiasedScopes()
1365 for (RegInfo &RI : Scope->CHRRegions) { in setCHRRegions()
1366 dbgs() << RI.R->getNameStr() << "\n"; in setCHRRegions()
1376 for (RegInfo &RI : Scope->RegInfos) { in setCHRRegions()
1377 for (SelectInst *SI : RI.Selects) { in setCHRRegions()
1382 for (RegInfo &RI : Scope->RegInfos) { in setCHRRegions()
1383 Region *R = RI.R; in setCHRRegions()
1386 if (RI.HasBranch) { in setCHRRegions()
1399 for (SelectInst *SI : RI.Selects) { in setCHRRegions()
1412 OutermostScope->CHRRegions.push_back(RI); in setCHRRegions()
1485 for (const RegInfo &RI : Scope->CHRRegions) { in hoistScopeConditions() local
1486 Region *R = RI.R; in hoistScopeConditions()
1489 if (RI.HasBranch && (IsTrueBiased || IsFalseBiased)) { in hoistScopeConditions()
1494 for (SelectInst *SI : RI.Selects) { in hoistScopeConditions()
1560 for (RegInfo &RI : Scope->RegInfos) { in insertTrivialPHIs()
1561 for (BasicBlock *BB : RI.R->blocks()) { // This includes the blocks in the in insertTrivialPHIs()
1621 auto HasBiasedBranchOrSelect = [](RegInfo &RI, CHRScope *Scope) { in assertCHRRegionsHaveBiasedBranchOrSelect() argument
1622 if (Scope->TrueBiasedRegions.count(RI.R) || in assertCHRRegionsHaveBiasedBranchOrSelect()
1623 Scope->FalseBiasedRegions.count(RI.R)) in assertCHRRegionsHaveBiasedBranchOrSelect()
1625 for (SelectInst *SI : RI.Selects) in assertCHRRegionsHaveBiasedBranchOrSelect()
1631 for (RegInfo &RI : Scope->CHRRegions) { in assertCHRRegionsHaveBiasedBranchOrSelect()
1632 assert(HasBiasedBranchOrSelect(RI, Scope) && in assertCHRRegionsHaveBiasedBranchOrSelect()
1643 for (RegInfo &RI : Scope->CHRRegions) { in assertBranchOrSelectConditionHoisted()
1644 Region *R = RI.R; in assertBranchOrSelectConditionHoisted()
1647 if (RI.HasBranch && (IsTrueBiased || IsFalseBiased)) { in assertBranchOrSelectConditionHoisted()
1658 for (SelectInst *SI : RI.Selects) { in assertBranchOrSelectConditionHoisted()
1680 for (RegInfo &RI : Scope->RegInfos) { in transformScopes()
1681 const Region *R = RI.R; in transformScopes()
1696 for (RegInfo &RI : Scope->RegInfos) { in transformScopes()
1697 DuplicationCount[RI.R]++; in transformScopes()
1774 for (RegInfo &RI : Scope->RegInfos) in cloneScopeBlocks()
1775 for (BasicBlock *BB : RI.R->blocks()) { // This includes the blocks in the in cloneScopeBlocks()
1856 for (RegInfo &RI : Scope->CHRRegions) { in fixupBranchesAndSelects()
1857 Region *R = RI.R; in fixupBranchesAndSelects()
1858 if (RI.HasBranch) { in fixupBranchesAndSelects()
1862 for (SelectInst *SI : RI.Selects) { in fixupBranchesAndSelects()
2008 RI.print(dbgs())); in run()
2050 RI.print(dbgs())); in run()
2092 auto &RI = FAM.getResult<RegionInfoAnalysis>(F); in run() local
2094 bool Changed = CHR(F, BFI, DT, PSI, RI, ORE).run(); in run()