summaryrefslogtreecommitdiffstats
path: root/llvm/lib/LTO/LTOBackend.cpp
diff options
context:
space:
mode:
authorDavide Italiano <davide@freebsd.org>2016-08-31 17:02:44 +0000
committerDavide Italiano <davide@freebsd.org>2016-08-31 17:02:44 +0000
commit1e9d3d3b40ccf8c46ae8cd5ee30e9dfbf6bd6604 (patch)
treeac098c0473fa17a27231cd98aa41e5385d24bf24 /llvm/lib/LTO/LTOBackend.cpp
parent48f814e8a397594f8c3ca1c284d54b23b3ca7396 (diff)
downloadbcm5719-llvm-1e9d3d3b40ccf8c46ae8cd5ee30e9dfbf6bd6604.tar.gz
bcm5719-llvm-1e9d3d3b40ccf8c46ae8cd5ee30e9dfbf6bd6604.zip
[lib/LTO] Factor out logic for running passes.
This is in preparation for adding an option to run a custom pipeline with the new PM. It's currently used in lld. llvm-svn: 280258
Diffstat (limited to 'llvm/lib/LTO/LTOBackend.cpp')
-rw-r--r--llvm/lib/LTO/LTOBackend.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/llvm/lib/LTO/LTOBackend.cpp b/llvm/lib/LTO/LTOBackend.cpp
index f5574c9d2b6..5f17c65cb26 100644
--- a/llvm/lib/LTO/LTOBackend.cpp
+++ b/llvm/lib/LTO/LTOBackend.cpp
@@ -114,10 +114,8 @@ createTargetMachine(Config &C, StringRef TheTriple, const Target *TheTarget) {
C.CodeModel, C.CGOptLevel));
}
-bool opt(Config &C, TargetMachine *TM, unsigned Task, Module &M,
- bool IsThinLto) {
- M.setDataLayout(TM->createDataLayout());
-
+static void runOldPMPasses(Config &C, Module &M, TargetMachine *TM,
+ bool IsThinLto) {
legacy::PassManager passes;
passes.add(createTargetTransformInfoWrapperPass(TM->getTargetIRAnalysis()));
@@ -136,7 +134,12 @@ bool opt(Config &C, TargetMachine *TM, unsigned Task, Module &M,
else
PMB.populateLTOPassManager(passes);
passes.run(M);
+}
+bool opt(Config &C, TargetMachine *TM, unsigned Task, Module &M,
+ bool IsThinLto) {
+ M.setDataLayout(TM->createDataLayout());
+ runOldPMPasses(C, M, TM, IsThinLto);
if (C.PostOptModuleHook && !C.PostOptModuleHook(Task, M))
return false;
OpenPOWER on IntegriCloud