diff options
author | Devang Patel <dpatel@apple.com> | 2008-06-27 16:43:21 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2008-06-27 16:43:21 +0000 |
commit | 42af887105c37fb1dba3e197d70d16a34a0bc06f (patch) | |
tree | 501dfe5eb07a55412c32fdca605766679e6bb4d7 /lib/VMCore/Dominators.cpp | |
parent | b2931f29f3bb345eefe7d63bde1f230d235bca2e (diff) |
Add dominator info printer pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52829 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/Dominators.cpp')
-rw-r--r-- | lib/VMCore/Dominators.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/VMCore/Dominators.cpp b/lib/VMCore/Dominators.cpp index e9eca4eee4..452b59d218 100644 --- a/lib/VMCore/Dominators.cpp +++ b/lib/VMCore/Dominators.cpp @@ -286,3 +286,34 @@ void DominanceFrontierBase::print(std::ostream &o, const Module* ) const { void DominanceFrontierBase::dump() { 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); |