aboutsummaryrefslogtreecommitdiffstats
path: root/tools/opt
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2008-06-30 17:32:58 +0000
committerDevang Patel <dpatel@apple.com>2008-06-30 17:32:58 +0000
commit687e03b2fa6b08fcd59c4f2f0c4aababdd91a71a (patch)
tree76ff6aedea33c78182456b9c908f4d4b45db052f /tools/opt
parent6f7e1cddf63f91af84996d59cdb5809088ac3fe3 (diff)
downloadexternal_llvm-687e03b2fa6b08fcd59c4f2f0c4aababdd91a71a.zip
external_llvm-687e03b2fa6b08fcd59c4f2f0c4aababdd91a71a.tar.gz
external_llvm-687e03b2fa6b08fcd59c4f2f0c4aababdd91a71a.tar.bz2
Move dominator info printer into tool/opt/GraphPrinters.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52907 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/opt')
-rw-r--r--tools/opt/GraphPrinters.cpp32
1 files changed, 32 insertions, 0 deletions
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 @@ namespace {
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);
+}