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

Lines Matching defs:TrueBBI

231     bool ValidSimple(BBInfo &TrueBBI, unsigned &Dups,
233 bool ValidTriangle(BBInfo &TrueBBI, BBInfo &FalseBBI,
242 bool ValidDiamond(BBInfo &TrueBBI, BBInfo &FalseBBI,
245 bool ValidForkedDiamond(BBInfo &TrueBBI, BBInfo &FalseBBI,
256 BBInfo &TrueBBI, BBInfo &FalseBBI) const;
267 bool IfConvertDiamondCommon(BBInfo &BBI, BBInfo &TrueBBI, BBInfo &FalseBBI,
648 bool IfConverter::ValidSimple(BBInfo &TrueBBI, unsigned &Dups,
651 if (TrueBBI.IsBeingAnalyzed || TrueBBI.IsDone)
654 if (TrueBBI.IsBrAnalyzable)
657 if (TrueBBI.BB->pred_size() > 1) {
658 if (TrueBBI.CannotBeCopied ||
659 !TII->isProfitableToDupForIfCvt(*TrueBBI.BB, TrueBBI.NonPredSize,
662 Dups = TrueBBI.NonPredSize;
673 bool IfConverter::ValidTriangle(BBInfo &TrueBBI, BBInfo &FalseBBI,
677 if (TrueBBI.BB == FalseBBI.BB)
680 if (TrueBBI.IsBeingAnalyzed || TrueBBI.IsDone)
683 if (TrueBBI.BB->pred_size() > 1) {
684 if (TrueBBI.CannotBeCopied)
687 unsigned Size = TrueBBI.NonPredSize;
688 if (TrueBBI.IsBrAnalyzable) {
689 if (TrueBBI.TrueBB && TrueBBI.BrCond.empty())
694 ? TrueBBI.TrueBB : TrueBBI.FalseBB;
700 if (!TII->isProfitableToDupForIfCvt(*TrueBBI.BB, Size, Prediction))
705 MachineBasicBlock *TExit = FalseBranch ? TrueBBI.FalseBB : TrueBBI.TrueBB;
706 if (!TExit && blockAlwaysFallThrough(TrueBBI)) {
707 MachineFunction::iterator I = TrueBBI.BB->getIterator();
708 if (++I == TrueBBI.BB->getParent()->end())
811 /// @param TrueBBI - BBInfo to update for the true block.
818 BBInfo &TrueBBI, BBInfo &FalseBBI) const {
820 TrueBBI.IsUnpredicable = FalseBBI.IsUnpredicable = false;
821 ScanInstructions(TrueBBI, TIB, TIE, BranchUnpredicable);
822 if (TrueBBI.IsUnpredicable)
827 if (TrueBBI.ClobbersPred && FalseBBI.ClobbersPred)
880 BBInfo &TrueBBI, BBInfo &FalseBBI,
884 if (TrueBBI.IsBeingAnalyzed || TrueBBI.IsDone ||
888 if (!TrueBBI.IsBrAnalyzable || !FalseBBI.IsBrAnalyzable)
891 if (TrueBBI.BB->pred_size() > 1 || FalseBBI.BB->pred_size() > 1)
896 if (TrueBBI.BrCond.size() == 0 ||
900 MachineBasicBlock *TT = TrueBBI.TrueBB;
901 MachineBasicBlock *TF = TrueBBI.FalseBB;
906 TT = getNextBlock(*TrueBBI.BB);
908 TF = getNextBlock(*TrueBBI.BB);
935 MachineBasicBlock::iterator TIB = TrueBBI.BB->begin();
937 MachineBasicBlock::iterator TIE = TrueBBI.BB->end();
940 *TrueBBI.BB, *FalseBBI.BB,
944 TrueBBICalc.BB = TrueBBI.BB;
946 TrueBBICalc.IsBrAnalyzable = TrueBBI.IsBrAnalyzable;
954 TrueBBICalc.NonPredSize = TrueBBI.NonPredSize;
962 BBInfo &TrueBBI, BBInfo &FalseBBI,
966 if (TrueBBI.IsBeingAnalyzed || TrueBBI.IsDone ||
972 if (TrueBBI.BB == FalseBBI.BB)
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;