Lines Matching defs:RI
147 CHRScope(RegInfo RI) : BranchInsertPoint(nullptr) {
148 assert(RI.R && "Null RegionIn");
149 RegInfos.push_back(RI);
200 for (RegInfo &RI : RegInfos)
201 if (RI.R == SubIn->getParentRegion()) {
217 RegInfos, [&Boundary](const RegInfo &RI) { return Boundary == RI.R; });
222 for (const RegInfo &RI : TailRegInfos)
223 TailRegionSet.insert(RI.R);
234 [&Parent](const RegInfo &RI) { return Parent == RI.R; }) &&
249 for (const RegInfo &RI : RegInfos)
250 if (RI.R->contains(Parent))
291 : F(Fin), BFI(BFIin), DT(DTin), PSI(PSIin), RI(RIin), ORE(OREin) {}
306 Region *R = RI.getTopLevelRegion();
375 RegionInfo &RI;
446 for (const RegInfo &RI : RegInfos) {
447 OS << RI.R->getNameStr();
448 if (RI.HasBranch)
450 if (RI.Selects.size() > 0)
451 OS << " S" << RI.Selects.size();
677 static Instruction* getBranchInsertPoint(RegInfo &RI) {
678 Region *R = RI.R;
681 // the same as the branch instruction if RI.HasBranch is true.
683 for (SelectInst *SI : RI.Selects) {
696 for (SelectInst *SI : RI.Selects) {
730 bool EntryInSubregion = RI.getRegionFor(Entry) != R;
770 RegInfo RI(R);
771 RI.HasBranch = checkBiasedBranch(
774 Result = new CHRScope(RI);
778 if (!RI.HasBranch) {
817 auto AddSelects = [&](RegInfo &RI) {
819 if (checkBiasedSelect(SI, RI.R,
823 RI.Selects.push_back(SI);
832 RegInfo RI(R);
833 AddSelects(RI);
834 Result = new CHRScope(RI);
872 RegInfo &RI = Scope->RegInfos[0];
873 Region *R = RI.R;
875 auto *Branch = RI.HasBranch ?
877 SmallVector<SelectInst *, 8> &Selects = RI.Selects;
878 if (RI.HasBranch || !Selects.empty()) {
879 Instruction *InsertPoint = getBranchInsertPoint(RI);
914 InsertPoint = getBranchInsertPoint(RI);
916 if (RI.HasBranch && InsertPoint != Branch) {
946 if (RI.HasBranch) {
963 if (RI.HasBranch) {
1023 static DenseSet<Value *> getCHRConditionValuesForRegion(RegInfo &RI) {
1025 if (RI.HasBranch) {
1026 auto *BI = cast<BranchInst>(RI.R->getEntry()->getTerminator());
1029 for (SelectInst *SI : RI.Selects) {
1106 for (RegInfo &RI : Scope->RegInfos)
1107 for (SelectInst *SI : RI.Selects)
1148 for (RegInfo &RI : RegInfos) {
1149 Instruction *InsertPoint = getBranchInsertPoint(RI);
1150 DenseSet<Value *> ConditionValues = getCHRConditionValuesForRegion(RI);
1157 if (RI.R == RegInfos[0].R) {
1162 << RI.R->getNameStr() << "\n");
1170 RI.R->getEntry()->getTerminator())
1190 << RI.R->getNameStr() << "\n");
1193 CHRScope *Tail = Scope->split(RI.R);
1206 RI.R->getEntry()->getTerminator())
1289 for (RegInfo &RI : Scope->RegInfos) {
1290 if (RI.HasBranch) {
1291 Region *R = RI.R;
1299 for (SelectInst *SI : RI.Selects) {
1363 for (RegInfo &RI : Scope->CHRRegions) {
1364 dbgs() << RI.R->getNameStr() << "\n";
1374 for (RegInfo &RI : Scope->RegInfos) {
1375 for (SelectInst *SI : RI.Selects) {
1380 for (RegInfo &RI : Scope->RegInfos) {
1381 Region *R = RI.R;
1384 if (RI.HasBranch) {
1397 for (SelectInst *SI : RI.Selects) {
1410 OutermostScope->CHRRegions.push_back(RI);
1483 for (const RegInfo &RI : Scope->CHRRegions) {
1484 Region *R = RI.R;
1487 if (RI.HasBranch && (IsTrueBiased || IsFalseBiased)) {
1492 for (SelectInst *SI : RI.Selects) {
1558 for (RegInfo &RI : Scope->RegInfos) {
1559 for (BasicBlock *BB : RI.R->blocks()) { // This includes the blocks in the
1619 auto HasBiasedBranchOrSelect = [](RegInfo &RI, CHRScope *Scope) {
1620 if (Scope->TrueBiasedRegions.count(RI.R) ||
1621 Scope->FalseBiasedRegions.count(RI.R))
1623 for (SelectInst *SI : RI.Selects)
1629 for (RegInfo &RI : Scope->CHRRegions) {
1630 assert(HasBiasedBranchOrSelect(RI, Scope) &&
1641 for (RegInfo &RI : Scope->CHRRegions) {
1642 Region *R = RI.R;
1645 if (RI.HasBranch && (IsTrueBiased || IsFalseBiased)) {
1656 for (SelectInst *SI : RI.Selects) {
1678 for (RegInfo &RI : Scope->RegInfos) {
1679 const Region *R = RI.R;
1694 for (RegInfo &RI : Scope->RegInfos) {
1695 DuplicationCount[RI.R]++;
1772 for (RegInfo &RI : Scope->RegInfos)
1773 for (BasicBlock *BB : RI.R->blocks()) { // This includes the blocks in the
1854 for (RegInfo &RI : Scope->CHRRegions) {
1855 Region *R = RI.R;
1856 if (RI.HasBranch) {
1860 for (SelectInst *SI : RI.Selects) {
2007 RI.print(dbgs()));
2049 RI.print(dbgs()));
2091 auto &RI = FAM.getResult<RegionInfoAnalysis>(F);
2093 bool Changed = CHR(F, BFI, DT, PSI, RI, ORE).run();