45 INITIALIZE_PASS(CFGViewer,
"view-cfg",
"View CFG of function",
false,
true)
69 "View CFG of function (with no function bodies)",
false,
true)
79 std::string Filename =
"cfg." + F.
getName().
str() +
".dot";
80 errs() <<
"Writing '" << Filename <<
"'...";
82 std::string ErrorInfo;
85 if (ErrorInfo.empty())
88 errs() <<
" error opening file for writing!";
112 virtual bool runOnFunction(
Function &
F) {
113 std::string Filename =
"cfg." + F.
getName().
str() +
".dot";
114 errs() <<
"Writing '" << Filename <<
"'...";
116 std::string ErrorInfo;
119 if (ErrorInfo.empty())
122 errs() <<
" error opening file for writing!";
136 "Print CFG of function to 'dot' file (with no function bodies)",
158 return new CFGPrinter();
162 return new CFGOnlyPrinter();
static PassRegistry * getPassRegistry()
The main container class for the LLVM Intermediate Representation.
raw_ostream & WriteGraph(raw_ostream &O, const EdgeBundles &G, bool ShortNames=false, const Twine &Title="")
Specialize WriteGraph, the standard implementation won't work.
std::string str() const
str - Get the contents as an std::string.
StringRef getName() const
ID
LLVM Calling Convention Representation.
FunctionPass * createCFGPrinterPass()
void initializeCFGOnlyPrinterPass(PassRegistry &)
INITIALIZE_PASS(CFGOnlyViewer,"view-cfg-only","View CFG of function (with no function bodies)", false, true) namespace
void ViewGraph(const GraphType &G, const Twine &Name, bool ShortNames=false, const Twine &Title="", GraphProgram::Name Program=GraphProgram::DOT)
void initializeCFGPrinterPass(PassRegistry &)
void initializeCFGOnlyViewerPass(PassRegistry &)
std::string getName(ID id, ArrayRef< Type * > Tys=None)
FunctionPass * createCFGOnlyPrinterPass()