X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FAnalysis%2FCFGPrinter.cpp;h=c2c19d6a69efbd370b0d4d5bfb116a878fed7dcc;hb=f15492fd7292563049ace40be9a2e0048e64b8f0;hp=9b6879a42ed40b20c9eed997faa412e4302197dc;hpb=d04a8d4b33ff316ca4cf961e06c9e312eff8e64f;p=oota-llvm.git diff --git a/lib/Analysis/CFGPrinter.cpp b/lib/Analysis/CFGPrinter.cpp index 9b6879a42ed..c2c19d6a69e 100644 --- a/lib/Analysis/CFGPrinter.cpp +++ b/lib/Analysis/CFGPrinter.cpp @@ -19,6 +19,7 @@ #include "llvm/Analysis/CFGPrinter.h" #include "llvm/Pass.h" +#include "llvm/Support/FileSystem.h" using namespace llvm; namespace { @@ -28,14 +29,14 @@ namespace { initializeCFGOnlyViewerPass(*PassRegistry::getPassRegistry()); } - virtual bool runOnFunction(Function &F) { + bool runOnFunction(Function &F) override { F.viewCFG(); return false; } - void print(raw_ostream &OS, const Module* = 0) const {} + void print(raw_ostream &OS, const Module* = nullptr) const override {} - virtual void getAnalysisUsage(AnalysisUsage &AU) const { + void getAnalysisUsage(AnalysisUsage &AU) const override { AU.setPreservesAll(); } }; @@ -51,14 +52,14 @@ namespace { initializeCFGOnlyViewerPass(*PassRegistry::getPassRegistry()); } - virtual bool runOnFunction(Function &F) { + bool runOnFunction(Function &F) override { F.viewCFGOnly(); return false; } - void print(raw_ostream &OS, const Module* = 0) const {} + void print(raw_ostream &OS, const Module* = nullptr) const override {} - virtual void getAnalysisUsage(AnalysisUsage &AU) const { + void getAnalysisUsage(AnalysisUsage &AU) const override { AU.setPreservesAll(); } }; @@ -75,12 +76,12 @@ namespace { initializeCFGPrinterPass(*PassRegistry::getPassRegistry()); } - virtual bool runOnFunction(Function &F) { + bool runOnFunction(Function &F) override { std::string Filename = "cfg." + F.getName().str() + ".dot"; errs() << "Writing '" << Filename << "'..."; std::string ErrorInfo; - raw_fd_ostream File(Filename.c_str(), ErrorInfo); + raw_fd_ostream File(Filename.c_str(), ErrorInfo, sys::fs::F_Text); if (ErrorInfo.empty()) WriteGraph(File, (const Function*)&F); @@ -90,9 +91,9 @@ namespace { return false; } - void print(raw_ostream &OS, const Module* = 0) const {} + void print(raw_ostream &OS, const Module* = nullptr) const override {} - virtual void getAnalysisUsage(AnalysisUsage &AU) const { + void getAnalysisUsage(AnalysisUsage &AU) const override { AU.setPreservesAll(); } }; @@ -108,13 +109,13 @@ namespace { CFGOnlyPrinter() : FunctionPass(ID) { initializeCFGOnlyPrinterPass(*PassRegistry::getPassRegistry()); } - - virtual bool runOnFunction(Function &F) { + + bool runOnFunction(Function &F) override { std::string Filename = "cfg." + F.getName().str() + ".dot"; errs() << "Writing '" << Filename << "'..."; std::string ErrorInfo; - raw_fd_ostream File(Filename.c_str(), ErrorInfo); + raw_fd_ostream File(Filename.c_str(), ErrorInfo, sys::fs::F_Text); if (ErrorInfo.empty()) WriteGraph(File, (const Function*)&F, true); @@ -123,9 +124,9 @@ namespace { errs() << "\n"; return false; } - void print(raw_ostream &OS, const Module* = 0) const {} + void print(raw_ostream &OS, const Module* = nullptr) const override {} - virtual void getAnalysisUsage(AnalysisUsage &AU) const { + void getAnalysisUsage(AnalysisUsage &AU) const override { AU.setPreservesAll(); } }; @@ -147,8 +148,8 @@ void Function::viewCFG() const { /// viewCFGOnly - This function is meant for use from the debugger. It works /// just like viewCFG, but it does not include the contents of basic blocks -/// into the nodes, just the label. If you are only interested in the CFG t -/// his can make the graph smaller. +/// into the nodes, just the label. If you are only interested in the CFG +/// this can make the graph smaller. /// void Function::viewCFGOnly() const { ViewGraph(this, "cfg" + getName(), true);