[Driver] Run the pass manager.
authorMichael J. Spencer <bigcheesegs@gmail.com>
Thu, 24 Jan 2013 22:52:42 +0000 (22:52 +0000)
committerMichael J. Spencer <bigcheesegs@gmail.com>
Thu, 24 Jan 2013 22:52:42 +0000 (22:52 +0000)
llvm-svn: 173381

lld/include/lld/Core/PassManager.h
lld/lib/Driver/LinkerInvocation.cpp

index 25e90cb..98a2251 100644 (file)
@@ -11,6 +11,7 @@
 #define LLD_CORE_PASS_MANAGER_H
 
 #include "lld/Core/LLVM.h"
+#include "lld/Core/Pass.h"
 
 #include <memory>
 #include <vector>
index 51cd74b..1027403 100644 (file)
@@ -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";