Introduce a range version of std::find, and use in SCEV

Reviewers: dblaikie, pcc

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D15064

llvm-svn: 254391
This commit is contained in:
Sanjoy Das 2015-12-01 07:49:27 +00:00
parent ff3b8b4c33
commit 347d272c5c
2 changed files with 8 additions and 2 deletions

View File

@ -379,6 +379,13 @@ bool any_of(R &&Range, UnaryPredicate &&P) {
std::forward<UnaryPredicate>(P));
}
/// Provide wrappers to std::find which take ranges instead of having to pass
/// begin/end explicitly.
template<typename R, class T>
auto find(R &&Range, const T &val) -> decltype(Range.begin()) {
return std::find(Range.begin(), Range.end(), val);
}
//===----------------------------------------------------------------------===//
// Extra additions to <memory>
//===----------------------------------------------------------------------===//

View File

@ -7964,8 +7964,7 @@ static bool IsMaxConsistingOf(const SCEV *MaybeMaxExpr,
const MaxExprType *MaxExpr = dyn_cast<MaxExprType>(MaybeMaxExpr);
if (!MaxExpr) return false;
auto It = std::find(MaxExpr->op_begin(), MaxExpr->op_end(), Candidate);
return It != MaxExpr->op_end();
return find(MaxExpr->operands(), Candidate) != MaxExpr->op_end();
}