diff --git a/lib/VMCore/Dominators.cpp b/lib/VMCore/Dominators.cpp
index 452b59d..6f1de46 100644
--- a/lib/VMCore/Dominators.cpp
+++ b/lib/VMCore/Dominators.cpp
@@ -287,33 +287,3 @@
   print (llvm::cerr);
 }
 
-//===----------------------------------------------------------------------===//
-//                            DomInfoPrinter Pass
-//===----------------------------------------------------------------------===//
-
-namespace {
-  class VISIBILITY_HIDDEN DomInfoPrinter : public FunctionPass {
-  public:
-    static char ID; // Pass identification, replacement for typeid
-    DomInfoPrinter() : FunctionPass((intptr_t)&ID) {}
-
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.setPreservesAll();
-      AU.addRequired<DominatorTree>();
-      AU.addRequired<DominanceFrontier>();
-
-    }
-
-    virtual bool runOnFunction(Function &F) {
-      DominatorTree &DT = getAnalysis<DominatorTree>();
-      DT.dump();
-      DominanceFrontier &DF = getAnalysis<DominanceFrontier>();
-      DF.dump();
-      return false;
-    }
-  };
-}
-
-char DomInfoPrinter::ID = 0;
-static RegisterPass<DomInfoPrinter>
-DIP("print-dom-info", "Dominator Info Printer", true, true);
diff --git a/tools/opt/GraphPrinters.cpp b/tools/opt/GraphPrinters.cpp
index 867e334..7f1199a 100644
--- a/tools/opt/GraphPrinters.cpp
+++ b/tools/opt/GraphPrinters.cpp
@@ -18,6 +18,7 @@
 #include "llvm/Pass.h"
 #include "llvm/Value.h"
 #include "llvm/Analysis/CallGraph.h"
+#include "llvm/Analysis/Dominators.h"
 #include <iostream>
 #include <fstream>
 using namespace llvm;
@@ -81,3 +82,34 @@
   RegisterPass<CallGraphPrinter> P2("print-callgraph",
                                     "Print Call Graph to 'dot' file");
 }
+
+//===----------------------------------------------------------------------===//
+//                            DomInfoPrinter Pass
+//===----------------------------------------------------------------------===//
+
+namespace {
+  class DomInfoPrinter : public FunctionPass {
+  public:
+    static char ID; // Pass identification, replacement for typeid
+    DomInfoPrinter() : FunctionPass((intptr_t)&ID) {}
+
+    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+      AU.setPreservesAll();
+      AU.addRequired<DominatorTree>();
+      AU.addRequired<DominanceFrontier>();
+
+    }
+
+    virtual bool runOnFunction(Function &F) {
+      DominatorTree &DT = getAnalysis<DominatorTree>();
+      DT.dump();
+      DominanceFrontier &DF = getAnalysis<DominanceFrontier>();
+      DF.dump();
+      return false;
+    }
+  };
+
+  char DomInfoPrinter::ID = 0;
+  static RegisterPass<DomInfoPrinter>
+  DIP("print-dom-info", "Dominator Info Printer", true, true);
+}
