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
197 /// Parse \p CheckCond into a conjunction (logical-and) of range checks; and
198 /// append them to \p Checks. Returns true on success, may clobber \c Checks
200 bool parseRangeChecks(Value *CheckCond, SmallVectorImpl<RangeCheck> &Checks) {
202 return parseRangeChecks(CheckCond, Checks, Visited);
205 bool parseRangeChecks(Value *CheckCond, SmallVectorImpl<RangeCheck> &Checks,
208 /// Combine the checks in \p Checks into a smaller set of checks and append
209 /// them into \p CombinedChecks. Return true on success (i.e. all of checks
210 /// in \p Checks were combined into \p CombinedChecks). Clobbers \p Checks
212 bool combineRangeChecks(SmallVectorImpl<RangeCheck> &Checks,
504 SmallVector<GuardWideningImpl::RangeCheck, 4> Checks, CombinedChecks;
505 if (parseRangeChecks(Cond0, Checks) && parseRangeChecks(Cond1, Checks) &&
506 combineRangeChecks(Checks, CombinedChecks)) {
538 Value *CheckCond, SmallVectorImpl<GuardWideningImpl::RangeCheck> &Checks,
548 return parseRangeChecks(AndLHS, Checks) &&
549 parseRangeChecks(AndRHS, Checks);
605 Checks.push_back(Check);
610 SmallVectorImpl<GuardWideningImpl::RangeCheck> &Checks,
612 unsigned OldCount = Checks.size();
613 while (!Checks.empty()) {
614 // Pick all of the range checks with a specific base and length, and try to
616 Value *CurrentBase = Checks.front().getBase();
617 Value *CurrentLength = Checks.front().getLength();
625 copy_if(Checks, std::back_inserter(CurrentChecks), IsCurrentCheck);
626 Checks.erase(remove_if(Checks, IsCurrentCheck), Checks.end());
666 // We have a series of f+1 checks as:
678 // Chk_0 AND Chk_f implies all the other checks