Home | History | Annotate | Download | only in Scalar

Lines Matching refs:Checks

13 // "widening" and can be used hoist and common runtime checks in situations like
172 /// Parse \p CheckCond into a conjunction (logical-and) of range checks; and
173 /// append them to \p Checks. Returns true on success, may clobber \c Checks
175 bool parseRangeChecks(Value *CheckCond, SmallVectorImpl<RangeCheck> &Checks) {
177 return parseRangeChecks(CheckCond, Checks, Visited);
180 bool parseRangeChecks(Value *CheckCond, SmallVectorImpl<RangeCheck> &Checks,
183 /// Combine the checks in \p Checks into a smaller set of checks and append
184 /// them into \p CombinedChecks. Return true on success (i.e. all of checks
185 /// in \p Checks were combined into \p CombinedChecks). Clobbers \p Checks
187 bool combineRangeChecks(SmallVectorImpl<RangeCheck> &Checks,
447 Checks, CombinedChecks;
448 if (parseRangeChecks(Cond0, Checks) && parseRangeChecks(Cond1, Checks) &&
449 combineRangeChecks(Checks, CombinedChecks)) {
481 Value *CheckCond, SmallVectorImpl<GuardWideningImpl::RangeCheck> &Checks,
491 return parseRangeChecks(AndLHS, Checks) &&
492 parseRangeChecks(AndRHS, Checks);
550 Checks.push_back(Check);
555 SmallVectorImpl<GuardWideningImpl::RangeCheck> &Checks,
557 unsigned OldCount = Checks.size();
558 while (!Checks.empty()) {
559 // Pick all of the range checks with a specific base and length, and try to
561 Value *CurrentBase = Checks.front().getBase();
562 Value *CurrentLength = Checks.front().getLength();
570 std::copy_if(Checks.begin(), Checks.end(),
572 Checks.erase(remove_if(Checks, IsCurrentCheck), Checks.end());
612 // We have a series of f+1 checks as:
624 // Chk_0 AND Chk_(f+1) implies all the other checks