aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/ScalarEvolution.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-08-09 23:36:33 +0000
committerChris Lattner <sabre@nondot.org>2005-08-09 23:36:33 +0000
commita0740fbcc735eb87d7fe5111d302e4b8245120b6 (patch)
tree9ab800dcac45a3b828f28a7dda9e96325fc5f507 /lib/Analysis/ScalarEvolution.cpp
parent27631a30eb1c5cb1c5190531b10a147f058d6ff1 (diff)
implement two helper methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22736 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/ScalarEvolution.cpp')
-rw-r--r--lib/Analysis/ScalarEvolution.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/Analysis/ScalarEvolution.cpp b/lib/Analysis/ScalarEvolution.cpp
index 9c1beee042..1f798bc8b0 100644
--- a/lib/Analysis/ScalarEvolution.cpp
+++ b/lib/Analysis/ScalarEvolution.cpp
@@ -1095,6 +1095,20 @@ namespace {
/// expression and create a new one.
SCEVHandle getSCEV(Value *V);
+ /// hasSCEV - Return true if the SCEV for this value has already been
+ /// computed.
+ bool hasSCEV(Value *V) const {
+ return Scalars.count(V);
+ }
+
+ /// setSCEV - Insert the specified SCEV into the map of current SCEVs for
+ /// the specified value.
+ void setSCEV(Value *V, const SCEVHandle &H) {
+ bool isNew = Scalars.insert(std::make_pair(V, H)).second;
+ assert(isNew && "This entry already existed!");
+ }
+
+
/// getSCEVAtScope - Compute the value of the specified expression within
/// the indicated loop (which may be null to indicate in no loop). If the
/// expression cannot be evaluated, return UnknownValue itself.
@@ -2327,6 +2341,20 @@ SCEVHandle ScalarEvolution::getSCEV(Value *V) const {
return ((ScalarEvolutionsImpl*)Impl)->getSCEV(V);
}
+/// hasSCEV - Return true if the SCEV for this value has already been
+/// computed.
+bool ScalarEvolution::hasSCEV(Value *V) const {
+ ((ScalarEvolutionsImpl*)Impl)->hasSCEV(V);
+}
+
+
+/// setSCEV - Insert the specified SCEV into the map of current SCEVs for
+/// the specified value.
+void ScalarEvolution::setSCEV(Value *V, const SCEVHandle &H) {
+ ((ScalarEvolutionsImpl*)Impl)->setSCEV(V, H);
+}
+
+
SCEVHandle ScalarEvolution::getIterationCount(const Loop *L) const {
return ((ScalarEvolutionsImpl*)Impl)->getIterationCount(L);
}