OSDN Git Service

[PM] Preserve the correct set of analyses for GVN.
authorDavide Italiano <davide@freebsd.org>
Mon, 6 Jun 2016 20:01:50 +0000 (20:01 +0000)
committerDavide Italiano <davide@freebsd.org>
Mon, 6 Jun 2016 20:01:50 +0000 (20:01 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271934 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/GVN.cpp

index ef9638b..c3fcbbf 100644 (file)
@@ -594,7 +594,12 @@ PreservedAnalyses GVN::run(Function &F, AnalysisManager<Function> &AM) {
   auto &AA = AM.getResult<AAManager>(F);
   auto &MemDep = AM.getResult<MemoryDependenceAnalysis>(F);
   bool Changed = runImpl(F, AC, DT, TLI, AA, &MemDep);
-  return Changed ? PreservedAnalyses::none() : PreservedAnalyses::all();
+  if (!Changed)
+    return PreservedAnalyses::all();
+  PreservedAnalyses PA;
+  PA.preserve<DominatorTreeAnalysis>();
+  PA.preserve<GlobalsAA>();
+  return PA;
 }
 
 LLVM_DUMP_METHOD