summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/include/lld/Core/PassManager.h1
-rw-r--r--lld/lib/Driver/LinkerInvocation.cpp7
2 files changed, 7 insertions, 1 deletions
diff --git a/lld/include/lld/Core/PassManager.h b/lld/include/lld/Core/PassManager.h
index 25e90cb691b..98a22512f26 100644
--- a/lld/include/lld/Core/PassManager.h
+++ b/lld/include/lld/Core/PassManager.h
@@ -11,6 +11,7 @@
#define LLD_CORE_PASS_MANAGER_H
#include "lld/Core/LLVM.h"
+#include "lld/Core/Pass.h"
#include <memory>
#include <vector>
diff --git a/lld/lib/Driver/LinkerInvocation.cpp b/lld/lib/Driver/LinkerInvocation.cpp
index 51cd74b3de0..10274031e3c 100644
--- a/lld/lib/Driver/LinkerInvocation.cpp
+++ b/lld/lib/Driver/LinkerInvocation.cpp
@@ -10,6 +10,7 @@
#include "lld/Driver/LinkerInvocation.h"
#include "lld/Core/InputFiles.h"
+#include "lld/Core/PassManager.h"
#include "lld/Core/Resolver.h"
#include "lld/Driver/Target.h"
#include "lld/ReaderWriter/Reader.h"
@@ -75,7 +76,11 @@ void LinkerInvocation::operator()() {
Resolver resolver(target->getTargetInfo(), inputs);
resolver.resolve();
- File &merged = resolver.resultFile();
+ MutableFile &merged = resolver.resultFile();
+
+ PassManager pm;
+ target->getTargetInfo().addPasses(pm);
+ pm.runOnFile(merged);
if (error_code ec = writer) {
llvm::errs() << "Failed to get writer: " << ec.message() << ".\n";
OpenPOWER on IntegriCloud