Lines Matching defs:ExitCond

8972     const Loop *L, Value *ExitCond, bool ExitIfTrue, bool ControlsOnlyExit,
8975 return computeExitLimitFromCondCached(Cache, L, ExitCond, ExitIfTrue,
8980 ScalarEvolution::ExitLimitCache::find(const Loop *L, Value *ExitCond,
8990 auto Itr = TripCountMap.find({ExitCond, ControlsOnlyExit});
8996 void ScalarEvolution::ExitLimitCache::insert(const Loop *L, Value *ExitCond,
9005 auto InsertResult = TripCountMap.insert({{ExitCond, ControlsOnlyExit}, EL});
9012 ExitLimitCacheTy &Cache, const Loop *L, Value *ExitCond, bool ExitIfTrue,
9015 if (auto MaybeEL = Cache.find(L, ExitCond, ExitIfTrue, ControlsOnlyExit,
9020 Cache, L, ExitCond, ExitIfTrue, ControlsOnlyExit, AllowPredicates);
9021 Cache.insert(L, ExitCond, ExitIfTrue, ControlsOnlyExit, AllowPredicates, EL);
9026 ExitLimitCacheTy &Cache, const Loop *L, Value *ExitCond, bool ExitIfTrue,
9030 Cache, L, ExitCond, ExitIfTrue, ControlsOnlyExit, AllowPredicates))
9035 if (ICmpInst *ExitCondICmp = dyn_cast<ICmpInst>(ExitCond)) {
9051 if (ConstantInt *CI = dyn_cast<ConstantInt>(ExitCond)) {
9064 if (match(ExitCond, m_ExtractValue<1>(m_WithOverflowInst(WO))) &&
9084 return computeExitCountExhaustively(L, ExitCond, ExitIfTrue);
9089 ExitLimitCacheTy &Cache, const Loop *L, Value *ExitCond, bool ExitIfTrue,
9094 if (match(ExitCond, m_LogicalAnd(m_Value(Op0), m_Value(Op1))))
9096 else if (match(ExitCond, m_LogicalOr(m_Value(Op0), m_Value(Op1))))
9113 const Constant *NeutralElement = ConstantInt::get(ExitCond->getType(), IsAnd);
9123 bool UseSequentialUMin = !isa<BinaryOperator>(ExitCond);
9169 const Loop *L, ICmpInst *ExitCond, bool ExitIfTrue, bool ControlsOnlyExit,
9174 Pred = ExitCond->getCmpPredicate();
9176 Pred = ExitCond->getInverseCmpPredicate();
9179 const SCEV *LHS = getSCEV(ExitCond->getOperand(0));
9180 const SCEV *RHS = getSCEV(ExitCond->getOperand(1));
9188 computeExitCountExhaustively(L, ExitCond, ExitIfTrue);
9193 return computeShiftCompareExitLimit(ExitCond->getOperand(0),
9194 ExitCond->getOperand(1), L, OriginalPred);