]> granicus.if.org Git - llvm/commitdiff
[PGO] Preserve GlobalsAA in pgo-memop-opt pass.
authorRong Xu <xur@google.com>
Thu, 6 Apr 2017 20:56:00 +0000 (20:56 +0000)
committerRong Xu <xur@google.com>
Thu, 6 Apr 2017 20:56:00 +0000 (20:56 +0000)
Preserve GlobalsAA analysis in memory intrinsic calls optimization based on
profiled size.

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

lib/Transforms/Instrumentation/IndirectCallPromotion.cpp

index 3dfafee146e4534b66f8bc706cbc6c3c729189ac..61d627673c907076dee6d15df4125bb6523332cf 100644 (file)
@@ -18,6 +18,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Twine.h"
 #include "llvm/Analysis/BlockFrequencyInfo.h"
+#include "llvm/Analysis/GlobalsModRef.h"
 #include "llvm/Analysis/IndirectCallPromotionAnalysis.h"
 #include "llvm/Analysis/IndirectCallSiteVisitor.h"
 #include "llvm/IR/BasicBlock.h"
@@ -187,6 +188,7 @@ private:
   bool runOnFunction(Function &F) override;
   void getAnalysisUsage(AnalysisUsage &AU) const override {
     AU.addRequired<BlockFrequencyInfoWrapperPass>();
+    AU.addPreserved<GlobalsAAWrapperPass>();
   }
 };
 } // end anonymous namespace
@@ -1016,6 +1018,8 @@ PreservedAnalyses PGOMemOPSizeOpt::run(Function &F,
   bool Changed = PGOMemOPSizeOptImpl(F, BFI);
   if (!Changed)
     return PreservedAnalyses::all();
-  return PreservedAnalyses::none();
+  auto  PA = PreservedAnalyses();
+  PA.preserve<GlobalsAA>();
+  return PA;
 }
 } // namespace llvm