summaryrefslogtreecommitdiff
path: root/lib/Analysis/ScalarEvolutionNormalization.cpp
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2011-10-13 18:49:23 +0000
committerAndrew Trick <atrick@apple.com>2011-10-13 18:49:23 +0000
commit7f1653a7aee0c30adfa948ad5bdbf12c7cc1e519 (patch)
tree779d9b3530bde880e743cb724b2f62fa844cc7e2 /lib/Analysis/ScalarEvolutionNormalization.cpp
parente9d3c1cfbeae9ce34ec7cd4ad7edb2b235e4c785 (diff)
downloadllvm-7f1653a7aee0c30adfa948ad5bdbf12c7cc1e519.tar.gz
llvm-7f1653a7aee0c30adfa948ad5bdbf12c7cc1e519.tar.bz2
llvm-7f1653a7aee0c30adfa948ad5bdbf12c7cc1e519.tar.xz
Fix memory corruption I introduced a few checkins ago.
Self-review easily caught this obvious bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141880 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/ScalarEvolutionNormalization.cpp')
-rw-r--r--lib/Analysis/ScalarEvolutionNormalization.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/Analysis/ScalarEvolutionNormalization.cpp b/lib/Analysis/ScalarEvolutionNormalization.cpp
index 0670e46392..c66ecd6e87 100644
--- a/lib/Analysis/ScalarEvolutionNormalization.cpp
+++ b/lib/Analysis/ScalarEvolutionNormalization.cpp
@@ -202,12 +202,13 @@ TransformSubExpr(const SCEV *S, Instruction *User, Value *OperandValToReplace) {
if (isa<SCEVConstant>(S) || isa<SCEVUnknown>(S))
return S;
- const SCEV *&ExprRef = Transformed[S];
- if (ExprRef)
- return ExprRef;
+ const SCEV *Result = Transformed.lookup(S);
+ if (Result)
+ return Result;
- ExprRef = TransformImpl(S, User, OperandValToReplace);
- return ExprRef;
+ Result = TransformImpl(S, User, OperandValToReplace);
+ Transformed[S] = Result;
+ return Result;
}
/// Top level driver for transforming an expression DAG into its requested