diff options
author | Dan Gohman <gohman@apple.com> | 2009-05-08 20:38:54 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2009-05-08 20:38:54 +0000 |
commit | 66a7e857aa5843da3a7d0f52aa09a5935cf565dc (patch) | |
tree | b4ee42cc50cde27c46ee15b8a73db34e15776a33 | |
parent | a9519579b7134343b9b9520f8b1862baf8d872d5 (diff) |
Make the SCEV* form of getSCEVAtScope public, to allow ScalarEvolution
clients to use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71258 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Analysis/ScalarEvolution.h | 9 | ||||
-rw-r--r-- | lib/Analysis/ScalarEvolution.cpp | 25 |
2 files changed, 16 insertions, 18 deletions
diff --git a/include/llvm/Analysis/ScalarEvolution.h b/include/llvm/Analysis/ScalarEvolution.h index 96490229f4..d6fb8f011b 100644 --- a/include/llvm/Analysis/ScalarEvolution.h +++ b/include/llvm/Analysis/ScalarEvolution.h @@ -345,11 +345,6 @@ namespace llvm { Constant *getConstantEvolutionLoopExitValue(PHINode *PN, const APInt& BEs, const Loop *L); - /// 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. - SCEVHandle getSCEVAtScope(const SCEV *S, const Loop *L); - /// forgetLoopPHIs - Delete the memoized SCEVs associated with the /// PHI nodes in the given loop. This is used when the trip count of /// the loop may have changed. @@ -468,6 +463,10 @@ namespace llvm { /// /// If this value is not computable at this scope, a SCEVCouldNotCompute /// object is returned. + SCEVHandle getSCEVAtScope(const SCEV *S, const Loop *L); + + /// getSCEVAtScope - This is a convenience function which does + /// getSCEVAtScope(getSCEV(V), L). SCEVHandle getSCEVAtScope(Value *V, const Loop *L); /// isLoopGuardedByCond - Test whether entry to the loop is protected by diff --git a/lib/Analysis/ScalarEvolution.cpp b/lib/Analysis/ScalarEvolution.cpp index c43aad3987..8b48b78da4 100644 --- a/lib/Analysis/ScalarEvolution.cpp +++ b/lib/Analysis/ScalarEvolution.cpp @@ -2721,9 +2721,16 @@ ComputeBackedgeTakenCountExhaustively(const Loop *L, Value *Cond, bool ExitWhen) return UnknownValue; } -/// 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. +/// getSCEVAtScope - Return a SCEV expression handle for the specified value +/// at the specified scope in the program. The L value specifies a loop +/// nest to evaluate the expression at, where null is the top-level or a +/// specified loop is immediately inside of the loop. +/// +/// This method can be used to compute the exit value for a variable defined +/// in a loop by querying what the value will hold in the parent loop. +/// +/// If this value is not computable at this scope, a SCEVCouldNotCompute +/// object is returned. SCEVHandle ScalarEvolution::getSCEVAtScope(const SCEV *V, const Loop *L) { // FIXME: this should be turned into a virtual method on SCEV! @@ -2897,16 +2904,8 @@ SCEVHandle ScalarEvolution::getSCEVAtScope(const SCEV *V, const Loop *L) { assert(0 && "Unknown SCEV type!"); } -/// getSCEVAtScope - Return a SCEV expression handle for the specified value -/// at the specified scope in the program. The L value specifies a loop -/// nest to evaluate the expression at, where null is the top-level or a -/// specified loop is immediately inside of the loop. -/// -/// This method can be used to compute the exit value for a variable defined -/// in a loop by querying what the value will hold in the parent loop. -/// -/// If this value is not computable at this scope, a SCEVCouldNotCompute -/// object is returned. +/// getSCEVAtScope - This is a convenience function which does +/// getSCEVAtScope(getSCEV(V), L). SCEVHandle ScalarEvolution::getSCEVAtScope(Value *V, const Loop *L) { return getSCEVAtScope(getSCEV(V), L); } |