From f4be420def6f15cb50e8de26a83ecf8f574f5031 Mon Sep 17 00:00:00 2001 From: Mikhail Glushenkov Date: Fri, 27 Mar 2009 12:57:14 +0000 Subject: [PATCH] -write-graph now can be used with -o. Makes it possible to set the output file name. llvm-svn: 67835 --- llvm/include/llvm/CompilerDriver/CompilationGraph.h | 4 ++-- llvm/include/llvm/CompilerDriver/Main.inc | 10 ++++++++-- llvm/lib/CompilerDriver/CompilationGraph.cpp | 13 +++++-------- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/llvm/include/llvm/CompilerDriver/CompilationGraph.h b/llvm/include/llvm/CompilerDriver/CompilationGraph.h index 6bb649b99c30..825d4c40f8aa 100644 --- a/llvm/include/llvm/CompilerDriver/CompilationGraph.h +++ b/llvm/include/llvm/CompilerDriver/CompilationGraph.h @@ -157,8 +157,8 @@ namespace llvmc { /// in your path. void viewGraph(); - /// writeGraph - Write a compilation-graph.dot file. - void writeGraph(); + /// writeGraph - Write Graphviz .dot source file to the current direcotry. + void writeGraph(const std::string& OutputFilename); // GraphTraits support. friend NodesIterator GraphBegin(CompilationGraph*); diff --git a/llvm/include/llvm/CompilerDriver/Main.inc b/llvm/include/llvm/CompilerDriver/Main.inc index 0e4480b9b1e9..2d50c95039cf 100644 --- a/llvm/include/llvm/CompilerDriver/Main.inc +++ b/llvm/include/llvm/CompilerDriver/Main.inc @@ -98,7 +98,11 @@ int main(int argc, char** argv) { Plugins.PopulateCompilationGraph(graph); if (CheckGraph) { - return graph.Check(); + int ret = graph.Check(); + if (!ret) + std::cerr << "check-graph: no errors found.\n"; + + return ret; } if (ViewGraph) { @@ -108,7 +112,9 @@ int main(int argc, char** argv) { } if (WriteGraph) { - graph.writeGraph(); + graph.writeGraph(OutputFilename.empty() + ? std::string("compilation-graph.dot") + : OutputFilename); return 0; } diff --git a/llvm/lib/CompilerDriver/CompilationGraph.cpp b/llvm/lib/CompilerDriver/CompilationGraph.cpp index 6112cfe1b52b..dece4e8e0ae3 100644 --- a/llvm/lib/CompilerDriver/CompilationGraph.cpp +++ b/llvm/lib/CompilerDriver/CompilationGraph.cpp @@ -465,9 +465,6 @@ int CompilationGraph::Check () { // Check for cycles. ret += this->CheckCycles(); - if (!ret) - std::cerr << "check-graph: no errors found.\n"; - return ret; } @@ -519,18 +516,18 @@ namespace llvm { } -void CompilationGraph::writeGraph() { - std::ofstream O("compilation-graph.dot"); +void CompilationGraph::writeGraph(const std::string& OutputFilename) { + std::ofstream O(OutputFilename.c_str()); if (O.good()) { - std::cerr << "Writing 'compilation-graph.dot' file..."; + std::cerr << "Writing '"<< OutputFilename << "' file..."; llvm::WriteGraph(O, this); std::cerr << "done.\n"; O.close(); } else { - throw std::runtime_error("Error opening file 'compilation-graph.dot'" - " for writing!"); + throw std::runtime_error("Error opening file '" + OutputFilename + + "' for writing!"); } }