Changes in directory llvm/lib/Analysis:
CFGPrinter.cpp updated: 1.26 -> 1.27 --- Log message: Add passes -view-cfg and -view-cfg-only that are like -print-cfg and -print-cfg-only except they use the ViewCFG function, which displays the CFG rendered with graphviz with gv. --- Diffs of the changes: (+42 -0) CFGPrinter.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 42 insertions(+) Index: llvm/lib/Analysis/CFGPrinter.cpp diff -u llvm/lib/Analysis/CFGPrinter.cpp:1.26 llvm/lib/Analysis/CFGPrinter.cpp:1.27 --- llvm/lib/Analysis/CFGPrinter.cpp:1.26 Sun May 6 08:37:16 2007 +++ llvm/lib/Analysis/CFGPrinter.cpp Mon May 14 09:25:08 2007 @@ -90,6 +90,48 @@ } namespace { + struct VISIBILITY_HIDDEN CFGViewer : public FunctionPass { + static char ID; // Pass identifcation, replacement for typeid + CFGViewer() : FunctionPass((intptr_t)&ID) {} + + virtual bool runOnFunction(Function &F) { + F.viewCFG(); + return false; + } + + void print(std::ostream &OS, const Module* = 0) const {} + + virtual void getAnalysisUsage(AnalysisUsage &AU) const { + AU.setPreservesAll(); + } + }; + + char CFGViewer::ID = 0; + RegisterPass<CFGViewer> V0("view-cfg", + "View CFG of function"); + + struct VISIBILITY_HIDDEN CFGOnlyViewer : public FunctionPass { + static char ID; // Pass identifcation, replacement for typeid + CFGOnlyViewer() : FunctionPass((intptr_t)&ID) {} + + virtual bool runOnFunction(Function &F) { + CFGOnly = true; + F.viewCFG(); + CFGOnly = false; + return false; + } + + void print(std::ostream &OS, const Module* = 0) const {} + + virtual void getAnalysisUsage(AnalysisUsage &AU) const { + AU.setPreservesAll(); + } + }; + + char CFGOnlyViewer::ID = 0; + RegisterPass<CFGOnlyViewer> V1("view-cfg-only", + "View CFG of function (with no function bodies)"); + struct VISIBILITY_HIDDEN CFGPrinter : public FunctionPass { static char ID; // Pass identification, replacement for typeid CFGPrinter() : FunctionPass((intptr_t)&ID) {} _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits