summaryrefslogtreecommitdiffstats
path: root/llvm/tools
diff options
context:
space:
mode:
authorTeresa Johnson <tejohnson@google.com>2016-08-12 13:53:02 +0000
committerTeresa Johnson <tejohnson@google.com>2016-08-12 13:53:02 +0000
commitf93b246f8b22137abe69842ab4a99747d95a7f7a (patch)
tree95b3703eb5458c5152ed11937dbd23d24a1f9cd4 /llvm/tools
parent565bdd9fed999909827d75a4bea27ace05b4445d (diff)
downloadbcm5719-llvm-f93b246f8b22137abe69842ab4a99747d95a7f7a.tar.gz
bcm5719-llvm-f93b246f8b22137abe69842ab4a99747d95a7f7a.zip
[PM] Port ModuleSummaryIndex analysis to new pass manager
Summary: Port the ModuleSummaryAnalysisWrapperPass to the new pass manager. Use it in the ported BitcodeWriterPass (similar to how we use the legacy ModuleSummaryAnalysisWrapperPass in the legacy WriteBitcodePass). Also, pass the -module-summary opt flag through to the new pass manager pipeline and through to the bitcode writer pass, and add a test that uses it. Reviewers: mehdi_amini Subscribers: llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D23439 llvm-svn: 278508
Diffstat (limited to 'llvm/tools')
-rw-r--r--llvm/tools/opt/NewPMDriver.cpp7
-rw-r--r--llvm/tools/opt/NewPMDriver.h3
-rw-r--r--llvm/tools/opt/opt.cpp3
3 files changed, 8 insertions, 5 deletions
diff --git a/llvm/tools/opt/NewPMDriver.cpp b/llvm/tools/opt/NewPMDriver.cpp
index f7b2f18d09d..223d9605a02 100644
--- a/llvm/tools/opt/NewPMDriver.cpp
+++ b/llvm/tools/opt/NewPMDriver.cpp
@@ -52,7 +52,8 @@ bool llvm::runPassPipeline(StringRef Arg0, LLVMContext &Context, Module &M,
StringRef PassPipeline, OutputKind OK,
VerifierKind VK,
bool ShouldPreserveAssemblyUseListOrder,
- bool ShouldPreserveBitcodeUseListOrder) {
+ bool ShouldPreserveBitcodeUseListOrder,
+ bool EmitSummaryIndex, bool EmitModuleHash) {
PassBuilder PB(TM);
// Specially handle the alias analysis manager so that we can register
@@ -100,8 +101,8 @@ bool llvm::runPassPipeline(StringRef Arg0, LLVMContext &Context, Module &M,
PrintModulePass(Out->os(), "", ShouldPreserveAssemblyUseListOrder));
break;
case OK_OutputBitcode:
- MPM.addPass(
- BitcodeWriterPass(Out->os(), ShouldPreserveBitcodeUseListOrder));
+ MPM.addPass(BitcodeWriterPass(Out->os(), ShouldPreserveBitcodeUseListOrder,
+ EmitSummaryIndex, EmitModuleHash));
break;
}
diff --git a/llvm/tools/opt/NewPMDriver.h b/llvm/tools/opt/NewPMDriver.h
index 66a470d49ba..5cf2afc53bd 100644
--- a/llvm/tools/opt/NewPMDriver.h
+++ b/llvm/tools/opt/NewPMDriver.h
@@ -52,7 +52,8 @@ bool runPassPipeline(StringRef Arg0, LLVMContext &Context, Module &M,
StringRef PassPipeline, opt_tool::OutputKind OK,
opt_tool::VerifierKind VK,
bool ShouldPreserveAssemblyUseListOrder,
- bool ShouldPreserveBitcodeUseListOrder);
+ bool ShouldPreserveBitcodeUseListOrder,
+ bool EmitSummaryIndex, bool EmitModuleHash);
}
#endif
diff --git a/llvm/tools/opt/opt.cpp b/llvm/tools/opt/opt.cpp
index 66dc5637eb5..4aa21db98fb 100644
--- a/llvm/tools/opt/opt.cpp
+++ b/llvm/tools/opt/opt.cpp
@@ -490,7 +490,8 @@ int main(int argc, char **argv) {
// layer.
return runPassPipeline(argv[0], Context, *M, TM.get(), Out.get(),
PassPipeline, OK, VK, PreserveAssemblyUseListOrder,
- PreserveBitcodeUseListOrder)
+ PreserveBitcodeUseListOrder, EmitSummaryIndex,
+ EmitModuleHash)
? 0
: 1;
}
OpenPOWER on IntegriCloud