From 3b39537e71f1b4bdf7dd49244e39e0a585951f1e Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 22 Oct 2003 16:02:58 +0000 Subject: [PATCH] Delete the -print-cfg pass from this file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9372 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/analyze/GraphPrinters.cpp | 69 +-------------------------------- tools/opt/GraphPrinters.cpp | 69 +-------------------------------- 2 files changed, 4 insertions(+), 134 deletions(-) diff --git a/tools/analyze/GraphPrinters.cpp b/tools/analyze/GraphPrinters.cpp index 9a8c06770dd..34c937f0d4d 100644 --- a/tools/analyze/GraphPrinters.cpp +++ b/tools/analyze/GraphPrinters.cpp @@ -16,55 +16,10 @@ #include "Support/GraphWriter.h" #include "llvm/Pass.h" -#include "llvm/iTerminators.h" +#include "llvm/Value.h" #include "llvm/Analysis/CallGraph.h" -#include "llvm/Support/CFG.h" -#include #include -//===----------------------------------------------------------------------===// -// Control Flow Graph Printer -//===----------------------------------------------------------------------===// - -template<> -struct DOTGraphTraits : public DefaultDOTGraphTraits { - static std::string getGraphName(Function *F) { - return "CFG for '" + F->getName() + "' function"; - } - - static std::string getNodeLabel(BasicBlock *Node, Function *Graph) { - std::ostringstream Out; - Out << Node; - std::string OutStr = Out.str(); - if (OutStr[0] == '\n') OutStr.erase(OutStr.begin()); - - // Process string output to make it nicer... - for (unsigned i = 0; i != OutStr.length(); ++i) - if (OutStr[i] == '\n') { // Left justify - OutStr[i] = '\\'; - OutStr.insert(OutStr.begin()+i+1, 'l'); - } else if (OutStr[i] == ';') { // Delete comments! - unsigned Idx = OutStr.find('\n', i+1); // Find end of line - OutStr.erase(OutStr.begin()+i, OutStr.begin()+Idx); - --i; - } - - return OutStr; - } - - static std::string getNodeAttributes(BasicBlock *N) { - return "fontname=Courier"; - } - - static std::string getEdgeSourceLabel(BasicBlock *Node, succ_iterator I) { - // Label source of conditional branches with "T" or "F" - if (BranchInst *BI = dyn_cast(Node->getTerminator())) - if (BI->isConditional()) - return (I == succ_begin(Node)) ? "T" : "F"; - return ""; - } -}; - template static void WriteGraphToFile(std::ostream &O, const std::string &GraphName, const GraphType >) { @@ -80,26 +35,6 @@ static void WriteGraphToFile(std::ostream &O, const std::string &GraphName, } -namespace { - struct CFGPrinter : public FunctionPass { - virtual bool runOnFunction(Function &Func) { - WriteGraphToFile(std::cerr, "cfg."+Func.getName(), &Func); - return false; - } - - void print(std::ostream &OS) const {} - - virtual void getAnalysisUsage(AnalysisUsage &AU) const { - AU.setPreservesAll(); - } - }; - - RegisterAnalysis P1("print-cfg", - "Print CFG of function to 'dot' file"); -}; - - - //===----------------------------------------------------------------------===// // Call Graph Printer //===----------------------------------------------------------------------===// @@ -112,7 +47,7 @@ struct DOTGraphTraits : public DefaultDOTGraphTraits { static std::string getNodeLabel(CallGraphNode *Node, CallGraph *Graph) { if (Node->getFunction()) - return Node->getFunction()->getName(); + return ((Value*)Node->getFunction())->getName(); else return "Indirect call node"; } diff --git a/tools/opt/GraphPrinters.cpp b/tools/opt/GraphPrinters.cpp index 9a8c06770dd..34c937f0d4d 100644 --- a/tools/opt/GraphPrinters.cpp +++ b/tools/opt/GraphPrinters.cpp @@ -16,55 +16,10 @@ #include "Support/GraphWriter.h" #include "llvm/Pass.h" -#include "llvm/iTerminators.h" +#include "llvm/Value.h" #include "llvm/Analysis/CallGraph.h" -#include "llvm/Support/CFG.h" -#include #include -//===----------------------------------------------------------------------===// -// Control Flow Graph Printer -//===----------------------------------------------------------------------===// - -template<> -struct DOTGraphTraits : public DefaultDOTGraphTraits { - static std::string getGraphName(Function *F) { - return "CFG for '" + F->getName() + "' function"; - } - - static std::string getNodeLabel(BasicBlock *Node, Function *Graph) { - std::ostringstream Out; - Out << Node; - std::string OutStr = Out.str(); - if (OutStr[0] == '\n') OutStr.erase(OutStr.begin()); - - // Process string output to make it nicer... - for (unsigned i = 0; i != OutStr.length(); ++i) - if (OutStr[i] == '\n') { // Left justify - OutStr[i] = '\\'; - OutStr.insert(OutStr.begin()+i+1, 'l'); - } else if (OutStr[i] == ';') { // Delete comments! - unsigned Idx = OutStr.find('\n', i+1); // Find end of line - OutStr.erase(OutStr.begin()+i, OutStr.begin()+Idx); - --i; - } - - return OutStr; - } - - static std::string getNodeAttributes(BasicBlock *N) { - return "fontname=Courier"; - } - - static std::string getEdgeSourceLabel(BasicBlock *Node, succ_iterator I) { - // Label source of conditional branches with "T" or "F" - if (BranchInst *BI = dyn_cast(Node->getTerminator())) - if (BI->isConditional()) - return (I == succ_begin(Node)) ? "T" : "F"; - return ""; - } -}; - template static void WriteGraphToFile(std::ostream &O, const std::string &GraphName, const GraphType >) { @@ -80,26 +35,6 @@ static void WriteGraphToFile(std::ostream &O, const std::string &GraphName, } -namespace { - struct CFGPrinter : public FunctionPass { - virtual bool runOnFunction(Function &Func) { - WriteGraphToFile(std::cerr, "cfg."+Func.getName(), &Func); - return false; - } - - void print(std::ostream &OS) const {} - - virtual void getAnalysisUsage(AnalysisUsage &AU) const { - AU.setPreservesAll(); - } - }; - - RegisterAnalysis P1("print-cfg", - "Print CFG of function to 'dot' file"); -}; - - - //===----------------------------------------------------------------------===// // Call Graph Printer //===----------------------------------------------------------------------===// @@ -112,7 +47,7 @@ struct DOTGraphTraits : public DefaultDOTGraphTraits { static std::string getNodeLabel(CallGraphNode *Node, CallGraph *Graph) { if (Node->getFunction()) - return Node->getFunction()->getName(); + return ((Value*)Node->getFunction())->getName(); else return "Indirect call node"; }