-write-graph now can be used with -o.
authorMikhail Glushenkov <foldr@codedgers.com>
Fri, 27 Mar 2009 12:57:14 +0000 (12:57 +0000)
committerMikhail Glushenkov <foldr@codedgers.com>
Fri, 27 Mar 2009 12:57:14 +0000 (12:57 +0000)
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

include/llvm/CompilerDriver/CompilationGraph.h
include/llvm/CompilerDriver/Main.inc
lib/CompilerDriver/CompilationGraph.cpp

index 6bb649b99c30dc496c2c60d6da909ce32a550e22..825d4c40f8aaad4c5d668023f184c76e8f564b1a 100644 (file)
@@ -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*);
index 0e4480b9b1e9afb87c6559edc457e4c95ad4b3ce..2d50c95039cfcff877a6abd5b8b07cb9e4afcbb0 100644 (file)
@@ -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;
     }
 
index 6112cfe1b52b5b9f15609a046a1cd78c3f36ddfd..dece4e8e0ae33ceb4dfb06028fd1df9661813de5 100644 (file)
@@ -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!");
   }
 }