Lines Matching defs:FalseBBI
228 bool ValidTriangle(BBInfo &TrueBBI, BBInfo &FalseBBI,
237 bool ValidDiamond(BBInfo &TrueBBI, BBInfo &FalseBBI,
240 bool ValidForkedDiamond(BBInfo &TrueBBI, BBInfo &FalseBBI,
251 BBInfo &TrueBBI, BBInfo &FalseBBI) const;
262 bool IfConvertDiamondCommon(BBInfo &BBI, BBInfo &TrueBBI, BBInfo &FalseBBI,
667 bool IfConverter::ValidTriangle(BBInfo &TrueBBI, BBInfo &FalseBBI,
671 if (TrueBBI.BB == FalseBBI.BB)
706 return TExit && TExit == FalseBBI.BB;
806 /// @param FalseBBI - BBInfo to update for the false block.
812 BBInfo &TrueBBI, BBInfo &FalseBBI) const {
814 TrueBBI.IsUnpredicable = FalseBBI.IsUnpredicable = false;
818 ScanInstructions(FalseBBI, FIB, FIE, BranchUnpredicable);
819 if (FalseBBI.IsUnpredicable)
821 if (TrueBBI.ClobbersPred && FalseBBI.ClobbersPred)
874 BBInfo &TrueBBI, BBInfo &FalseBBI,
879 FalseBBI.IsBeingAnalyzed || FalseBBI.IsDone)
882 if (!TrueBBI.IsBrAnalyzable || !FalseBBI.IsBrAnalyzable)
885 if (TrueBBI.BB->pred_size() > 1 || FalseBBI.BB->pred_size() > 1)
891 FalseBBI.BrCond.size() == 0)
896 MachineBasicBlock *FT = FalseBBI.TrueBB;
897 MachineBasicBlock *FF = FalseBBI.FalseBB;
904 FT = getNextBlock(*FalseBBI.BB);
906 FF = getNextBlock(*FalseBBI.BB);
918 if (!FalseBBI.IsBrReversible)
921 reverseBranchCondition(FalseBBI);
925 reverseBranchCondition(FalseBBI);
930 MachineBasicBlock::iterator FIB = FalseBBI.BB->begin();
932 MachineBasicBlock::iterator FIE = FalseBBI.BB->end();
934 *TrueBBI.BB, *FalseBBI.BB,
939 FalseBBICalc.BB = FalseBBI.BB;
941 FalseBBICalc.IsBrAnalyzable = FalseBBI.IsBrAnalyzable;
949 FalseBBICalc.NonPredSize = FalseBBI.NonPredSize;
956 BBInfo &TrueBBI, BBInfo &FalseBBI,
961 FalseBBI.IsBeingAnalyzed || FalseBBI.IsDone)
966 if (TrueBBI.BB == FalseBBI.BB)
970 MachineBasicBlock *FT = FalseBBI.TrueBB;
974 if (!FT && blockAlwaysFallThrough(FalseBBI))
975 FT = getNextBlock(*FalseBBI.BB);
978 if (!TT && (TrueBBI.IsBrAnalyzable || FalseBBI.IsBrAnalyzable))
980 if (TrueBBI.BB->pred_size() > 1 || FalseBBI.BB->pred_size() > 1)
984 if (TrueBBI.FalseBB || FalseBBI.FalseBB)
992 TrueBBI.IsBrAnalyzable && FalseBBI.IsBrAnalyzable;
994 MachineBasicBlock::iterator FIB = FalseBBI.BB->begin();
996 MachineBasicBlock::iterator FIE = FalseBBI.BB->end();
998 *TrueBBI.BB, *FalseBBI.BB,
1003 FalseBBICalc.BB = FalseBBI.BB;
1005 FalseBBICalc.IsBrAnalyzable = FalseBBI.IsBrAnalyzable;
1012 FalseBBICalc.NonPredSize = FalseBBI.NonPredSize;
1270 BBInfo &FalseBBI = BBAnalysis[BBI.FalseBB->getNumber()];
1272 if (TrueBBI.IsDone && FalseBBI.IsDone) {
1286 bool FNeedSub = !FalseBBI.Predicate.empty();
1299 bool FalseFeasible = FeasibilityAnalysis(FalseBBI, RevCond,
1305 if (ValidDiamond(TrueBBI, FalseBBI, Dups, Dups2,
1321 } else if (ValidForkedDiamond(TrueBBI, FalseBBI, Dups, Dups2,
1342 if (ValidTriangle(TrueBBI, FalseBBI, false, Dups, Prediction) &&
1358 if (ValidTriangle(TrueBBI, FalseBBI, true, Dups, Prediction) &&
1385 if (ValidTriangle(FalseBBI, TrueBBI, false, Dups,
1387 MeetIfcvtSizeLimit(*FalseBBI.BB,
1388 FalseBBI.NonPredSize + FalseBBI.ExtraCost,
1389 FalseBBI.ExtraCost2, Prediction.getCompl()) &&
1390 FeasibilityAnalysis(FalseBBI, RevCond, true)) {
1396 if (ValidTriangle(FalseBBI, TrueBBI, true, Dups,
1398 MeetIfcvtSizeLimit(*FalseBBI.BB,
1399 FalseBBI.NonPredSize + FalseBBI.ExtraCost,
1400 FalseBBI.ExtraCost2, Prediction.getCompl()) &&
1401 FeasibilityAnalysis(FalseBBI, RevCond, true, true)) {
1407 if (ValidSimple(FalseBBI, Dups, Prediction.getCompl()) &&
1408 MeetIfcvtSizeLimit(*FalseBBI.BB,
1409 FalseBBI.NonPredSize + FalseBBI.ExtraCost,
1410 FalseBBI.ExtraCost2, Prediction.getCompl()) &&
1411 FeasibilityAnalysis(FalseBBI, RevCond)) {
1520 BBInfo &FalseBBI = BBAnalysis[BBI.FalseBB->getNumber()];
1522 BBInfo *NextBBI = &FalseBBI;
1605 BBInfo &FalseBBI = BBAnalysis[BBI.FalseBB->getNumber()];
1607 BBInfo *NextBBI = &FalseBBI;
1747 /// \p BBI, \p TrueBBI, and \p FalseBBI form the diamond shape.
1749 /// and FalseBBI
1751 /// and \p FalseBBI
1758 BBInfo &BBI, BBInfo &TrueBBI, BBInfo &FalseBBI,
1763 if (TrueBBI.IsDone || FalseBBI.IsDone ||
1764 TrueBBI.BB->pred_size() > 1 || FalseBBI.BB->pred_size() > 1) {
1768 FalseBBI.IsAnalyzed = false;
1772 if (TrueBBI.BB->hasAddressTaken() || FalseBBI.BB->hasAddressTaken())
1780 BBInfo *BBI2 = &FalseBBI;
1792 if (TrueBBI.NonPredSize > FalseBBI.NonPredSize)
1996 BBInfo &FalseBBI = BBAnalysis[BBI.FalseBB->getNumber()];
2007 BBI, TrueBBI, FalseBBI,
2019 BBI.IsDone = TrueBBI.IsDone = FalseBBI.IsDone = true;
2031 BBInfo &FalseBBI = BBAnalysis[BBI.FalseBB->getNumber()];
2037 TailBB = FalseBBI.TrueBB;
2042 BBI, TrueBBI, FalseBBI,
2057 BBI.BB->removeSuccessor(FalseBBI.BB, true);
2075 if (*PI != TrueBBI.BB && *PI != FalseBBI.BB)
2089 BBI.IsDone = TrueBBI.IsDone = FalseBBI.IsDone = true;