diff options
| author | Rong Xu <xur@google.com> | 2017-04-06 20:56:00 +0000 |
|---|---|---|
| committer | Rong Xu <xur@google.com> | 2017-04-06 20:56:00 +0000 |
| commit | 2bf4c59025777d9d7b705e23dc3ed4346e67108c (patch) | |
| tree | c7906543c5cb363eb0b66ab61e74fe16261f5a84 /llvm/lib | |
| parent | 1505de5495bd72b1478d2bf74c6da3c2833f7d55 (diff) | |
| download | bcm5719-llvm-2bf4c59025777d9d7b705e23dc3ed4346e67108c.tar.gz bcm5719-llvm-2bf4c59025777d9d7b705e23dc3ed4346e67108c.zip | |
[PGO] Preserve GlobalsAA in pgo-memop-opt pass.
Preserve GlobalsAA analysis in memory intrinsic calls optimization based on
profiled size.
llvm-svn: 299707
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp b/llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp index 3dfafee146e..61d627673c9 100644 --- a/llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp +++ b/llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp @@ -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 |

