Lines Matching defs:RI

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