Lines Matching refs:BI
467 if (auto *BI = dyn_cast<BranchInst>(TermInst)) { in rewriteFirstIterationLoopExitValues() local
470 Cond = BI->getCondition(); in rewriteFirstIterationLoopExitValues()
703 BranchInst *BI = cast<BranchInst>(ExitingBB->getTerminator()); in isLoopExitTestBasedOn() local
704 ICmpInst *ICmp = dyn_cast<ICmpInst>(BI->getCondition()); in isLoopExitTestBasedOn()
722 BranchInst *BI = cast<BranchInst>(ExitingBB->getTerminator()); in needsLFTR() local
723 if (L->isLoopInvariant(BI->getCondition())) in needsLFTR()
727 ICmpInst *Cond = dyn_cast<ICmpInst>(BI->getCondition()); in needsLFTR()
1008 BranchInst *BI = cast<BranchInst>(ExitingBB->getTerminator()); in linearFunctionTestReplace() local
1010 if (L->contains(BI->getSuccessor(0))) in linearFunctionTestReplace()
1015 IRBuilder<> Builder(BI); in linearFunctionTestReplace()
1019 if (auto *Cond = dyn_cast<Instruction>(BI->getCondition())) in linearFunctionTestReplace()
1071 << " was: " << *BI->getCondition() << "\n"); in linearFunctionTestReplace()
1074 Value *OrigCond = BI->getCondition(); in linearFunctionTestReplace()
1080 BI->setCondition(Cond); in linearFunctionTestReplace()
1181 static void replaceExitCond(BranchInst *BI, Value *NewCond, in replaceExitCond() argument
1183 auto *OldCond = BI->getCondition(); in replaceExitCond()
1184 LLVM_DEBUG(dbgs() << "Replacing condition of loop-exiting branch " << *BI in replaceExitCond()
1186 BI->setCondition(NewCond); in replaceExitCond()
1193 BranchInst *BI = cast<BranchInst>(ExitingBB->getTerminator()); in createFoldedExitCond() local
1195 auto *OldCond = BI->getCondition(); in createFoldedExitCond()
1202 BranchInst *BI = cast<BranchInst>(ExitingBB->getTerminator()); in foldExit() local
1204 replaceExitCond(BI, NewCond, DeadInsts); in foldExit()
1259 BranchInst *BI = cast<BranchInst>(ExitingBB->getTerminator()); in createInvariantCond() local
1261 BI->getCondition()->getName()); in createInvariantCond()
1273 auto *BI = cast<BranchInst>(ExitingBB->getTerminator()); in createReplacement() local
1280 if (auto EV = SE->evaluatePredicateAt(Pred, LHSS, RHSS, BI)) in createReplacement()
1291 if (SE->isKnownPredicateAt(ICmpInst::ICMP_ULE, MaxIter, MaxAllowedIter, BI)) in createReplacement()
1311 L, BI, MaxIter); in createReplacement()
1316 if (SE->isKnownPredicateAt(LIP->Pred, LIP->LHS, LIP->RHS, BI)) in createReplacement()
1323 const Loop *L, BranchInst *BI, BasicBlock *ExitingBB, const SCEV *MaxIter, in optimizeLoopExitWithUnknownExitCount() argument
1327 (L->contains(BI->getSuccessor(0)) != L->contains(BI->getSuccessor(1))) && in optimizeLoopExitWithUnknownExitCount()
1333 bool Inverted = L->contains(BI->getSuccessor(1)); in optimizeLoopExitWithUnknownExitCount()
1337 Value *OldCond = BI->getCondition(); in optimizeLoopExitWithUnknownExitCount()
1440 auto *BI = dyn_cast<BranchInst>(ExitingBB->getTerminator()); in canonicalizeExitCondition() local
1441 if (!BI) in canonicalizeExitCondition()
1443 assert(BI->isConditional() && "exit branch must be conditional"); in canonicalizeExitCondition()
1445 auto *ICmp = dyn_cast<ICmpInst>(BI->getCondition()); in canonicalizeExitCondition()
1486 auto *BI = dyn_cast<BranchInst>(ExitingBB->getTerminator()); in canonicalizeExitCondition() local
1487 if (!BI) in canonicalizeExitCondition()
1489 assert(BI->isConditional() && "exit branch must be conditional"); in canonicalizeExitCondition()
1491 auto *ICmp = dyn_cast<ICmpInst>(BI->getCondition()); in canonicalizeExitCondition()
1574 BranchInst *BI = dyn_cast<BranchInst>(ExitingBB->getTerminator()); in optimizeLoopExits() local
1575 if (!BI) in optimizeLoopExits()
1582 if (auto *CI = dyn_cast<ConstantInt>(BI->getCondition())) { in optimizeLoopExits()
1586 if (!L->contains(BI->getSuccessor(CI->isNullValue()))) in optimizeLoopExits()
1646 auto *BI = cast<BranchInst>(ExitingBB->getTerminator()); in optimizeLoopExits() local
1648 return optimizeLoopExitWithUnknownExitCount(L, BI, ExitingBB, in optimizeLoopExits()
1764 BranchInst *BI = dyn_cast<BranchInst>(ExitingBB->getTerminator()); in predicateLoopExits() local
1765 if (!BI) in predicateLoopExits()
1769 if (isa<Constant>(BI->getCondition())) in predicateLoopExits()
1776 BI->getSuccessor(L->contains(BI->getSuccessor(0)) ? 1 : 0); in predicateLoopExits()
1864 auto *BI = cast<BranchInst>(ExitingBB->getTerminator()); in predicateLoopExits() local
1867 NewCond = L->contains(BI->getSuccessor(0)) ? in predicateLoopExits()
1879 auto Pred = L->contains(BI->getSuccessor(0)) ? in predicateLoopExits()
1883 Value *OldCond = BI->getCondition(); in predicateLoopExits()
1884 BI->setCondition(NewCond); in predicateLoopExits()