diff options
author | Mikhail Glushenkov <foldr@codedgers.com> | 2009-03-27 12:57:14 +0000 |
---|---|---|
committer | Mikhail Glushenkov <foldr@codedgers.com> | 2009-03-27 12:57:14 +0000 |
commit | d50d32b9401b609f7cf03eed290ec6433e2f8362 (patch) | |
tree | 0f7bde69cf93bf5d999304e6f31f114c42d5ed71 | |
parent | 74a057b41f1210d1fd0aa11cb707c2c634a0c905 (diff) |
-write-graph now can be used with -o.
Makes it possible to set the output file name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67835 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/CompilerDriver/CompilationGraph.h | 4 | ||||
-rw-r--r-- | include/llvm/CompilerDriver/Main.inc | 10 | ||||
-rw-r--r-- | lib/CompilerDriver/CompilationGraph.cpp | 13 |
3 files changed, 15 insertions, 12 deletions
diff --git a/include/llvm/CompilerDriver/CompilationGraph.h b/include/llvm/CompilerDriver/CompilationGraph.h index 6bb649b99c..825d4c40f8 100644 --- a/include/llvm/CompilerDriver/CompilationGraph.h +++ b/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/include/llvm/CompilerDriver/Main.inc b/include/llvm/CompilerDriver/Main.inc index 0e4480b9b1..2d50c95039 100644 --- a/include/llvm/CompilerDriver/Main.inc +++ b/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/lib/CompilerDriver/CompilationGraph.cpp b/lib/CompilerDriver/CompilationGraph.cpp index 6112cfe1b5..dece4e8e0a 100644 --- a/lib/CompilerDriver/CompilationGraph.cpp +++ b/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!"); } } |