diff options
| author | Xinliang David Li <davidxl@google.com> | 2016-05-27 23:20:16 +0000 |
|---|---|---|
| committer | Xinliang David Li <davidxl@google.com> | 2016-05-27 23:20:16 +0000 |
| commit | d38392ecd619f983baef5082e9e941904703d556 (patch) | |
| tree | 3b793f39a64a383ea18b37904c278d7c0e965daa /llvm/lib | |
| parent | ea2aef4a1d4beded20033fa4fc223936c7ffe5d8 (diff) | |
| download | bcm5719-llvm-d38392ecd619f983baef5082e9e941904703d556.tar.gz bcm5719-llvm-d38392ecd619f983baef5082e9e941904703d556.zip | |
[PM] Port the Sample FDO to new PM (part-2)
llvm-svn: 271072
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Passes/PassBuilder.cpp | 1 | ||||
| -rw-r--r-- | llvm/lib/Passes/PassRegistry.def | 1 | ||||
| -rw-r--r-- | llvm/lib/Transforms/IPO/SampleProfile.cpp | 22 |
3 files changed, 19 insertions, 5 deletions
diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp index 80cd918c2cc..fdf8c6982d5 100644 --- a/llvm/lib/Passes/PassBuilder.cpp +++ b/llvm/lib/Passes/PassBuilder.cpp @@ -62,6 +62,7 @@ #include "llvm/Transforms/InstCombine/InstCombine.h" #include "llvm/Transforms/InstrProfiling.h" #include "llvm/Transforms/PGOInstrumentation.h" +#include "llvm/Transforms/SampleProfile.h" #include "llvm/Transforms/Scalar/ADCE.h" #include "llvm/Transforms/Scalar/BDCE.h" #include "llvm/Transforms/Scalar/DCE.h" diff --git a/llvm/lib/Passes/PassRegistry.def b/llvm/lib/Passes/PassRegistry.def index 10bbbae6b47..9aaf17779da 100644 --- a/llvm/lib/Passes/PassRegistry.def +++ b/llvm/lib/Passes/PassRegistry.def @@ -53,6 +53,7 @@ MODULE_PASS("pgo-instr-use", PGOInstrumentationUse()) MODULE_PASS("print", PrintModulePass(dbgs())) MODULE_PASS("print-callgraph", CallGraphPrinterPass(dbgs())) MODULE_PASS("print-lcg", LazyCallGraphPrinterPass(dbgs())) +MODULE_PASS("sample-profile", SampleProfileLoaderPass()) MODULE_PASS("strip-dead-prototypes", StripDeadPrototypesPass()) MODULE_PASS("verify", VerifierPass()) #undef MODULE_PASS diff --git a/llvm/lib/Transforms/IPO/SampleProfile.cpp b/llvm/lib/Transforms/IPO/SampleProfile.cpp index 6c0ce76be6d..68310687f82 100644 --- a/llvm/lib/Transforms/IPO/SampleProfile.cpp +++ b/llvm/lib/Transforms/IPO/SampleProfile.cpp @@ -22,6 +22,7 @@ // //===----------------------------------------------------------------------===// +#include "llvm/Transforms/SampleProfile.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/SmallSet.h" @@ -34,8 +35,8 @@ #include "llvm/IR/Dominators.h" #include "llvm/IR/Function.h" #include "llvm/IR/InstIterator.h" -#include "llvm/IR/IntrinsicInst.h" #include "llvm/IR/Instructions.h" +#include "llvm/IR/IntrinsicInst.h" #include "llvm/IR/LLVMContext.h" #include "llvm/IR/MDBuilder.h" #include "llvm/IR/Metadata.h" @@ -1225,10 +1226,8 @@ bool SampleProfileLoader::emitAnnotations(Function &F) { } char SampleProfileLoaderLegacyPass::ID = 0; -INITIALIZE_PASS_BEGIN(SampleProfileLoaderLegacyPass, "sample-profile", - "Sample Profile loader", false, false) -INITIALIZE_PASS_END(SampleProfileLoaderLegacyPass, "sample-profile", - "Sample Profile loader", false, false) +INITIALIZE_PASS(SampleProfileLoaderLegacyPass, "sample-profile", + "Sample Profile loader", false, false) bool SampleProfileLoader::doInitialization(Module &M) { auto &Ctx = M.getContext(); @@ -1279,3 +1278,16 @@ bool SampleProfileLoader::runOnFunction(Function &F) { return emitAnnotations(F); return false; } + +PreservedAnalyses SampleProfileLoaderPass::run(Module &M, + AnalysisManager<Module> &AM) { + + SampleProfileLoader SampleLoader(SampleProfileFile); + + SampleLoader.doInitialization(M); + + if (!SampleLoader.runOnModule(M)) + return PreservedAnalyses::all(); + + return PreservedAnalyses::none(); +} |

