Lines Matching refs:ExitCond
7839 const Loop *L, Value *ExitCond, bool ExitIfTrue, in computeExitLimitFromCond() argument
7842 return computeExitLimitFromCondCached(Cache, L, ExitCond, ExitIfTrue, in computeExitLimitFromCond()
7847 ScalarEvolution::ExitLimitCache::find(const Loop *L, Value *ExitCond, in find() argument
7857 auto Itr = TripCountMap.find({ExitCond, ControlsExit}); in find()
7863 void ScalarEvolution::ExitLimitCache::insert(const Loop *L, Value *ExitCond, in insert() argument
7872 auto InsertResult = TripCountMap.insert({{ExitCond, ControlsExit}, EL}); in insert()
7879 ExitLimitCacheTy &Cache, const Loop *L, Value *ExitCond, bool ExitIfTrue, in computeExitLimitFromCondCached() argument
7883 Cache.find(L, ExitCond, ExitIfTrue, ControlsExit, AllowPredicates)) in computeExitLimitFromCondCached()
7886 ExitLimit EL = computeExitLimitFromCondImpl(Cache, L, ExitCond, ExitIfTrue, in computeExitLimitFromCondCached()
7888 Cache.insert(L, ExitCond, ExitIfTrue, ControlsExit, AllowPredicates, EL); in computeExitLimitFromCondCached()
7893 ExitLimitCacheTy &Cache, const Loop *L, Value *ExitCond, bool ExitIfTrue, in computeExitLimitFromCondImpl() argument
7897 Cache, L, ExitCond, ExitIfTrue, ControlsExit, AllowPredicates)) in computeExitLimitFromCondImpl()
7902 if (ICmpInst *ExitCondICmp = dyn_cast<ICmpInst>(ExitCond)) { in computeExitLimitFromCondImpl()
7917 if (ConstantInt *CI = dyn_cast<ConstantInt>(ExitCond)) { in computeExitLimitFromCondImpl()
7927 return computeExitCountExhaustively(L, ExitCond, ExitIfTrue); in computeExitLimitFromCondImpl()
7932 ExitLimitCacheTy &Cache, const Loop *L, Value *ExitCond, bool ExitIfTrue, in computeExitLimitFromCondFromBinOp() argument
7937 if (match(ExitCond, m_LogicalAnd(m_Value(Op0), m_Value(Op1)))) in computeExitLimitFromCondFromBinOp()
7939 else if (match(ExitCond, m_LogicalOr(m_Value(Op0), m_Value(Op1)))) in computeExitLimitFromCondFromBinOp()
7956 const Constant *NeutralElement = ConstantInt::get(ExitCond->getType(), IsAnd); in computeExitLimitFromCondFromBinOp()
7971 bool PoisonSafe = isa<BinaryOperator>(ExitCond); in computeExitLimitFromCondFromBinOp()
7990 assert(!isa<BinaryOperator>(ExitCond) || !EL0.ExactNotTaken->isZero() || in computeExitLimitFromCondFromBinOp()
8021 ICmpInst *ExitCond, in computeExitLimitFromICmp() argument
8028 Pred = ExitCond->getPredicate(); in computeExitLimitFromICmp()
8030 Pred = ExitCond->getInversePredicate(); in computeExitLimitFromICmp()
8034 if (LoadInst *LI = dyn_cast<LoadInst>(ExitCond->getOperand(0))) in computeExitLimitFromICmp()
8035 if (Constant *RHS = dyn_cast<Constant>(ExitCond->getOperand(1))) { in computeExitLimitFromICmp()
8042 const SCEV *LHS = getSCEV(ExitCond->getOperand(0)); in computeExitLimitFromICmp()
8043 const SCEV *RHS = getSCEV(ExitCond->getOperand(1)); in computeExitLimitFromICmp()
8129 computeExitCountExhaustively(L, ExitCond, ExitIfTrue); in computeExitLimitFromICmp()
8134 return computeShiftCompareExitLimit(ExitCond->getOperand(0), in computeExitLimitFromICmp()
8135 ExitCond->getOperand(1), L, OriginalPred); in computeExitLimitFromICmp()