diff options
Diffstat (limited to 'lib/Analysis/ScalarEvolutionNormalization.cpp')
-rw-r--r-- | lib/Analysis/ScalarEvolutionNormalization.cpp | 11 |
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 |