• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/contrib/llvm-project/llvm/lib/CodeGen/

Lines Matching refs:TrueBBI

230     bool ValidSimple(BBInfo &TrueBBI, unsigned &Dups,
232 bool ValidTriangle(BBInfo &TrueBBI, BBInfo &FalseBBI,
241 bool ValidDiamond(BBInfo &TrueBBI, BBInfo &FalseBBI,
244 bool ValidForkedDiamond(BBInfo &TrueBBI, BBInfo &FalseBBI,
255 BBInfo &TrueBBI, BBInfo &FalseBBI) const;
266 bool IfConvertDiamondCommon(BBInfo &BBI, BBInfo &TrueBBI, BBInfo &FalseBBI,
653 bool IfConverter::ValidSimple(BBInfo &TrueBBI, unsigned &Dups,
656 if (TrueBBI.IsBeingAnalyzed || TrueBBI.IsDone)
659 if (TrueBBI.IsBrAnalyzable)
662 if (TrueBBI.BB->pred_size() > 1) {
663 if (TrueBBI.CannotBeCopied ||
664 !TII->isProfitableToDupForIfCvt(*TrueBBI.BB, TrueBBI.NonPredSize,
667 Dups = TrueBBI.NonPredSize;
678 bool IfConverter::ValidTriangle(BBInfo &TrueBBI, BBInfo &FalseBBI,
682 if (TrueBBI.BB == FalseBBI.BB)
685 if (TrueBBI.IsBeingAnalyzed || TrueBBI.IsDone)
688 if (TrueBBI.BB->pred_size() > 1) {
689 if (TrueBBI.CannotBeCopied)
692 unsigned Size = TrueBBI.NonPredSize;
693 if (TrueBBI.IsBrAnalyzable) {
694 if (TrueBBI.TrueBB && TrueBBI.BrCond.empty())
699 ? TrueBBI.TrueBB : TrueBBI.FalseBB;
705 if (!TII->isProfitableToDupForIfCvt(*TrueBBI.BB, Size, Prediction))
710 MachineBasicBlock *TExit = FalseBranch ? TrueBBI.FalseBB : TrueBBI.TrueBB;
711 if (!TExit && blockAlwaysFallThrough(TrueBBI)) {
712 MachineFunction::iterator I = TrueBBI.BB->getIterator();
713 if (++I == TrueBBI.BB->getParent()->end())
816 /// @param TrueBBI - BBInfo to update for the true block.
823 BBInfo &TrueBBI, BBInfo &FalseBBI) const {
825 TrueBBI.IsUnpredicable = FalseBBI.IsUnpredicable = false;
826 ScanInstructions(TrueBBI, TIB, TIE, BranchUnpredicable);
827 if (TrueBBI.IsUnpredicable)
832 if (TrueBBI.ClobbersPred && FalseBBI.ClobbersPred)
885 BBInfo &TrueBBI, BBInfo &FalseBBI,
889 if (TrueBBI.IsBeingAnalyzed || TrueBBI.IsDone ||
893 if (!TrueBBI.IsBrAnalyzable || !FalseBBI.IsBrAnalyzable)
896 if (TrueBBI.BB->pred_size() > 1 || FalseBBI.BB->pred_size() > 1)
901 if (TrueBBI.BrCond.size() == 0 ||
905 MachineBasicBlock *TT = TrueBBI.TrueBB;
906 MachineBasicBlock *TF = TrueBBI.FalseBB;
911 TT = getNextBlock(*TrueBBI.BB);
913 TF = getNextBlock(*TrueBBI.BB);
940 MachineBasicBlock::iterator TIB = TrueBBI.BB->begin();
942 MachineBasicBlock::iterator TIE = TrueBBI.BB->end();
945 *TrueBBI.BB, *FalseBBI.BB,
949 TrueBBICalc.BB = TrueBBI.BB;
951 TrueBBICalc.IsBrAnalyzable = TrueBBI.IsBrAnalyzable;
959 TrueBBICalc.NonPredSize = TrueBBI.NonPredSize;
967 BBInfo &TrueBBI, BBInfo &FalseBBI,
971 if (TrueBBI.IsBeingAnalyzed || TrueBBI.IsDone ||
975 MachineBasicBlock *TT = TrueBBI.TrueBB;
978 if (!TT && blockAlwaysFallThrough(TrueBBI))
979 TT = getNextBlock(*TrueBBI.BB);
984 if (!TT && (TrueBBI.IsBrAnalyzable || FalseBBI.IsBrAnalyzable))
986 if (TrueBBI.BB->pred_size() > 1 || FalseBBI.BB->pred_size() > 1)
990 if (TrueBBI.FalseBB || FalseBBI.FalseBB)
998 TrueBBI.IsBrAnalyzable && FalseBBI.IsBrAnalyzable;
999 MachineBasicBlock::iterator TIB = TrueBBI.BB->begin();
1001 MachineBasicBlock::iterator TIE = TrueBBI.BB->end();
1004 *TrueBBI.BB, *FalseBBI.BB,
1008 TrueBBICalc.BB = TrueBBI.BB;
1010 TrueBBICalc.IsBrAnalyzable = TrueBBI.IsBrAnalyzable;
1017 TrueBBICalc.NonPredSize = TrueBBI.NonPredSize;
1275 BBInfo &TrueBBI = BBAnalysis[BBI.TrueBB->getNumber()];
1278 if (TrueBBI.IsDone && FalseBBI.IsDone) {
1291 bool TNeedSub = !TrueBBI.Predicate.empty();
1295 BranchProbability Prediction = MBPI->getEdgeProbability(BB, TrueBBI.BB);
1302 bool TrueFeasible = FeasibilityAnalysis(TrueBBI, BBI.BrCond,
1311 if (ValidDiamond(TrueBBI, FalseBBI, Dups, Dups2,
1327 } else if (ValidForkedDiamond(TrueBBI, FalseBBI, Dups, Dups2,
1348 if (ValidTriangle(TrueBBI, FalseBBI, false, Dups, Prediction) &&
1349 MeetIfcvtSizeLimit(*TrueBBI.BB, TrueBBI.NonPredSize + TrueBBI.ExtraCost,
1350 TrueBBI.ExtraCost2, Prediction) &&
1351 FeasibilityAnalysis(TrueBBI, BBI.BrCond, true)) {
1364 if (ValidTriangle(TrueBBI, FalseBBI, true, Dups, Prediction) &&
1365 MeetIfcvtSizeLimit(*TrueBBI.BB, TrueBBI.NonPredSize + TrueBBI.ExtraCost,
1366 TrueBBI.ExtraCost2, Prediction) &&
1367 FeasibilityAnalysis(TrueBBI, BBI.BrCond, true, true)) {
1373 if (ValidSimple(TrueBBI, Dups, Prediction) &&
1374 MeetIfcvtSizeLimit(*TrueBBI.BB, TrueBBI.NonPredSize + TrueBBI.ExtraCost,
1375 TrueBBI.ExtraCost2, Prediction) &&
1376 FeasibilityAnalysis(TrueBBI, BBI.BrCond)) {
1391 if (ValidTriangle(FalseBBI, TrueBBI, false, Dups,
1402 if (ValidTriangle(FalseBBI, TrueBBI, true, Dups,
1535 BBInfo &TrueBBI = BBAnalysis[BBI.TrueBB->getNumber()];
1537 BBInfo *CvtBBI = &TrueBBI;
1620 BBInfo &TrueBBI = BBAnalysis[BBI.TrueBB->getNumber()];
1622 BBInfo *CvtBBI = &TrueBBI;
1763 /// \p BBI, \p TrueBBI, and \p FalseBBI form the diamond shape.
1764 /// \p NumDups1 - number of shared instructions at the beginning of \p TrueBBI
1766 /// \p NumDups2 - number of shared instructions at the end of \p TrueBBI
1774 BBInfo &BBI, BBInfo &TrueBBI, BBInfo &FalseBBI,
1779 if (TrueBBI.IsDone || FalseBBI.IsDone ||
1780 TrueBBI.BB->pred_size() > 1 || FalseBBI.BB->pred_size() > 1) {
1783 TrueBBI.IsAnalyzed = false;
1788 if (TrueBBI.BB->hasAddressTaken() || FalseBBI.BB->hasAddressTaken())
1795 BBInfo *BBI1 = &TrueBBI;
1808 if (TrueBBI.NonPredSize > FalseBBI.NonPredSize)
2013 BBInfo &TrueBBI = BBAnalysis[BBI.TrueBB->getNumber()];
2018 MachineBasicBlock::iterator TIE = TrueBBI.BB->getFirstTerminator();
2019 if (TIE != TrueBBI.BB->end())
2025 BBI, TrueBBI, FalseBBI,
2033 TII->insertBranch(*BBI.BB, TrueBBI.TrueBB, TrueBBI.FalseBB,
2034 TrueBBI.BrCond, dl);
2037 BBI.IsDone = TrueBBI.IsDone = FalseBBI.IsDone = true;
2048 BBInfo &TrueBBI = BBAnalysis[BBI.TrueBB->getNumber()];
2050 MachineBasicBlock *TailBB = TrueBBI.TrueBB;
2054 if (blockAlwaysFallThrough(TrueBBI))
2056 assert((TailBB || !TrueBBI.IsBrAnalyzable) && "Unexpected!");
2060 BBI, TrueBBI, FalseBBI,
2063 /* RemoveBranch */ TrueBBI.IsBrAnalyzable,
2074 BBI.BB->removeSuccessor(TrueBBI.BB);
2093 if (*PI != TrueBBI.BB && *PI != FalseBBI.BB)
2107 BBI.IsDone = TrueBBI.IsDone = FalseBBI.IsDone = true;