]> granicus.if.org Git - llvm/commitdiff
Let CorrelatedValuePropagation preserve LazyValueInfo
authorDavid Bolvansky <david.bolvansky@gmail.com>
Wed, 24 Jul 2019 20:27:32 +0000 (20:27 +0000)
committerDavid Bolvansky <david.bolvansky@gmail.com>
Wed, 24 Jul 2019 20:27:32 +0000 (20:27 +0000)
Summary:
This patch makes CorrelatedValuePropagation preserve LazyValueInfo by adding LazyValueInfo::eraseValue & calling it whenever an instruction is erased.

Passes `make check` , test-suite, and SPECrate 2017.

Patch by aqjune (Juneyoung Lee)

Reviewers: reames, mzolotukhin

Reviewed By: reames

Subscribers: xbolva00, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D59349

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@366942 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

index 89497177524fb9fa07df0540c2a39b5744c109d3..5629debe802cc327ab542d0f95a99956e475290a 100644 (file)
@@ -85,6 +85,7 @@ namespace {
       AU.addRequired<LazyValueInfoWrapperPass>();
       AU.addPreserved<GlobalsAAWrapperPass>();
       AU.addPreserved<DominatorTreeWrapperPass>();
+      AU.addPreserved<LazyValueInfoWrapperPass>();
     }
   };
 
@@ -796,5 +797,6 @@ CorrelatedValuePropagationPass::run(Function &F, FunctionAnalysisManager &AM) {
   PreservedAnalyses PA;
   PA.preserve<GlobalsAA>();
   PA.preserve<DominatorTreeAnalysis>();
+  PA.preserve<LazyValueAnalysis>();
   return PA;
 }