summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSanjoy Das <sanjoy@playingwithpointers.com>2015-12-01 07:49:23 +0000
committerSanjoy Das <sanjoy@playingwithpointers.com>2015-12-01 07:49:23 +0000
commitff3b8b4c33e0eed67072b8f7279b22d90b5b4747 (patch)
tree5dea24f63c8eb45a5547afebf90dd7104d79d6f2
parent5ec97a7b9b0dc633bb79453971287ac8662f7813 (diff)
downloadbcm5719-llvm-ff3b8b4c33e0eed67072b8f7279b22d90b5b4747.tar.gz
bcm5719-llvm-ff3b8b4c33e0eed67072b8f7279b22d90b5b4747.zip
Introduce a range version of std::any_of, and use it in SCEV
Reviewers: dblaikie, pcc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15063 llvm-svn: 254390
-rw-r--r--llvm/include/llvm/ADT/STLExtras.h8
-rw-r--r--llvm/lib/Analysis/ScalarEvolution.cpp7
-rw-r--r--llvm/tools/llvm-pdbdump/LinePrinter.cpp9
3 files changed, 14 insertions, 10 deletions
diff --git a/llvm/include/llvm/ADT/STLExtras.h b/llvm/include/llvm/ADT/STLExtras.h
index 1bd3b291e0e..3655a20d883 100644
--- a/llvm/include/llvm/ADT/STLExtras.h
+++ b/llvm/include/llvm/ADT/STLExtras.h
@@ -371,6 +371,14 @@ bool all_of(R &&Range, UnaryPredicate &&P) {
std::forward<UnaryPredicate>(P));
}
+/// Provide wrappers to std::any_of which take ranges instead of having to pass
+/// begin/end explicitly.
+template <typename R, class UnaryPredicate>
+bool any_of(R &&Range, UnaryPredicate &&P) {
+ return std::any_of(Range.begin(), Range.end(),
+ std::forward<UnaryPredicate>(P));
+}
+
//===----------------------------------------------------------------------===//
// Extra additions to <memory>
//===----------------------------------------------------------------------===//
diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp
index 23daeb67d65..4c8b6e7de84 100644
--- a/llvm/lib/Analysis/ScalarEvolution.cpp
+++ b/llvm/lib/Analysis/ScalarEvolution.cpp
@@ -8403,8 +8403,7 @@ const SCEV *SCEVAddRecExpr::getNumIterationsInRange(ConstantRange Range,
// The only time we can solve this is when we have all constant indices.
// Otherwise, we cannot determine the overflow conditions.
- if (std::any_of(op_begin(), op_end(),
- [](const SCEV *Op) { return !isa<SCEVConstant>(Op);}))
+ if (any_of(operands(), [](const SCEV *Op) { return !isa<SCEVConstant>(Op); }))
return SE.getCouldNotCompute();
// Okay at this point we know that all elements of the chrec are constants and
@@ -9694,8 +9693,8 @@ bool SCEVUnionPredicate::implies(const SCEVPredicate *N) const {
return false;
auto &SCEVPreds = ScevPredsIt->second;
- return std::any_of(SCEVPreds.begin(), SCEVPreds.end(),
- [N](const SCEVPredicate *I) { return I->implies(N); });
+ return any_of(SCEVPreds,
+ [N](const SCEVPredicate *I) { return I->implies(N); });
}
const SCEV *SCEVUnionPredicate::getExpr() const { return nullptr; }
diff --git a/llvm/tools/llvm-pdbdump/LinePrinter.cpp b/llvm/tools/llvm-pdbdump/LinePrinter.cpp
index 4f3ee54c769..a43727f02b5 100644
--- a/llvm/tools/llvm-pdbdump/LinePrinter.cpp
+++ b/llvm/tools/llvm-pdbdump/LinePrinter.cpp
@@ -11,15 +11,12 @@
#include "llvm-pdbdump.h"
+#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/Regex.h"
#include <algorithm>
namespace {
-template <class T, class Pred> bool any_of_range(T &&R, Pred P) {
- return std::any_of(R.begin(), R.end(), P);
-}
-
bool IsItemExcluded(llvm::StringRef Item,
std::list<llvm::Regex> &IncludeFilters,
std::list<llvm::Regex> &ExcludeFilters) {
@@ -30,10 +27,10 @@ bool IsItemExcluded(llvm::StringRef Item,
// Include takes priority over exclude. If the user specified include
// filters, and none of them include this item, them item is gone.
- if (!IncludeFilters.empty() && !any_of_range(IncludeFilters, match_pred))
+ if (!IncludeFilters.empty() && !any_of(IncludeFilters, match_pred))
return true;
- if (any_of_range(ExcludeFilters, match_pred))
+ if (any_of(ExcludeFilters, match_pred))
return true;
return false;
OpenPOWER on IntegriCloud