summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorRong Xu <xur@google.com>2017-04-06 20:56:00 +0000
committerRong Xu <xur@google.com>2017-04-06 20:56:00 +0000
commit2bf4c59025777d9d7b705e23dc3ed4346e67108c (patch)
treec7906543c5cb363eb0b66ab61e74fe16261f5a84 /llvm/lib
parent1505de5495bd72b1478d2bf74c6da3c2833f7d55 (diff)
downloadbcm5719-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.cpp6
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
OpenPOWER on IntegriCloud