diff options
author | Andrew Trick <atrick@apple.com> | 2011-10-13 18:49:23 +0000 |
---|---|---|
committer | Andrew Trick <atrick@apple.com> | 2011-10-13 18:49:23 +0000 |
commit | 7e442569dc718387e4db9a19bb13c27611b552a7 (patch) | |
tree | 351677e06fa1558abd5a44e2e9caa51063d5bd5b /llvm/lib/Analysis/ScalarEvolutionNormalization.cpp | |
parent | 2a14f17a65088cf6773606f6d431f6d2d984c66c (diff) | |
download | bcm5719-llvm-7e442569dc718387e4db9a19bb13c27611b552a7.tar.gz bcm5719-llvm-7e442569dc718387e4db9a19bb13c27611b552a7.zip |
Fix memory corruption I introduced a few checkins ago.
Self-review easily caught this obvious bug.
llvm-svn: 141880
Diffstat (limited to 'llvm/lib/Analysis/ScalarEvolutionNormalization.cpp')
-rw-r--r-- | llvm/lib/Analysis/ScalarEvolutionNormalization.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/llvm/lib/Analysis/ScalarEvolutionNormalization.cpp b/llvm/lib/Analysis/ScalarEvolutionNormalization.cpp index 0670e463922..c66ecd6e872 100644 --- a/llvm/lib/Analysis/ScalarEvolutionNormalization.cpp +++ b/llvm/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 |