diff options
author | Sanjoy Das <sanjoy@playingwithpointers.com> | 2015-12-01 07:49:27 +0000 |
---|---|---|
committer | Sanjoy Das <sanjoy@playingwithpointers.com> | 2015-12-01 07:49:27 +0000 |
commit | 347d272c5cb12628b4a8f9daf031517d1c214a8b (patch) | |
tree | c987608015841ef81801f289fd25a372e15567bd | |
parent | ff3b8b4c33e0eed67072b8f7279b22d90b5b4747 (diff) | |
download | bcm5719-llvm-347d272c5cb12628b4a8f9daf031517d1c214a8b.tar.gz bcm5719-llvm-347d272c5cb12628b4a8f9daf031517d1c214a8b.zip |
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
-rw-r--r-- | llvm/include/llvm/ADT/STLExtras.h | 7 | ||||
-rw-r--r-- | llvm/lib/Analysis/ScalarEvolution.cpp | 3 |
2 files changed, 8 insertions, 2 deletions
diff --git a/llvm/include/llvm/ADT/STLExtras.h b/llvm/include/llvm/ADT/STLExtras.h index 3655a20d883..d4360fa8d21 100644 --- a/llvm/include/llvm/ADT/STLExtras.h +++ b/llvm/include/llvm/ADT/STLExtras.h @@ -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> //===----------------------------------------------------------------------===// diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp index 4c8b6e7de84..d04028b15e2 100644 --- a/llvm/lib/Analysis/ScalarEvolution.cpp +++ b/llvm/lib/Analysis/ScalarEvolution.cpp @@ -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(); } |