diff options
| -rw-r--r-- | lld/include/lld/Core/PassManager.h | 1 | ||||
| -rw-r--r-- | lld/lib/Driver/LinkerInvocation.cpp | 7 |
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"; |

