summaryrefslogtreecommitdiff
path: root/lib/Analysis/IPA/CallPrinter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Analysis/IPA/CallPrinter.cpp')
-rw-r--r--lib/Analysis/IPA/CallPrinter.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/lib/Analysis/IPA/CallPrinter.cpp b/lib/Analysis/IPA/CallPrinter.cpp
index 1c9856b252..68dcd3c064 100644
--- a/lib/Analysis/IPA/CallPrinter.cpp
+++ b/lib/Analysis/IPA/CallPrinter.cpp
@@ -35,24 +35,38 @@ template <> struct DOTGraphTraits<CallGraph *> : public DefaultDOTGraphTraits {
}
};
+struct AnalysisCallGraphWrapperPassTraits {
+ static CallGraph *getGraph(CallGraphWrapperPass *P) {
+ return &P->getCallGraph();
+ }
+};
+
} // end llvm namespace
namespace {
-struct CallGraphViewer : public DOTGraphTraitsModuleViewer<CallGraph, true> {
+struct CallGraphViewer
+ : public DOTGraphTraitsModuleViewer<CallGraphWrapperPass, true, CallGraph *,
+ AnalysisCallGraphWrapperPassTraits> {
static char ID;
CallGraphViewer()
- : DOTGraphTraitsModuleViewer<CallGraph, true>("callgraph", ID) {
+ : DOTGraphTraitsModuleViewer<CallGraphWrapperPass, true, CallGraph *,
+ AnalysisCallGraphWrapperPassTraits>(
+ "callgraph", ID) {
initializeCallGraphViewerPass(*PassRegistry::getPassRegistry());
}
};
-struct CallGraphPrinter : public DOTGraphTraitsModulePrinter<CallGraph, true> {
+struct CallGraphPrinter : public DOTGraphTraitsModulePrinter<
+ CallGraphWrapperPass, true, CallGraph *,
+ AnalysisCallGraphWrapperPassTraits> {
static char ID;
CallGraphPrinter()
- : DOTGraphTraitsModulePrinter<CallGraph, true>("callgraph", ID) {
+ : DOTGraphTraitsModulePrinter<CallGraphWrapperPass, true, CallGraph *,
+ AnalysisCallGraphWrapperPassTraits>(
+ "callgraph", ID) {
initializeCallGraphPrinterPass(*PassRegistry::getPassRegistry());
}
};