Make sure to print out the call nodes as well
authorChris Lattner <sabre@nondot.org>
Wed, 16 Oct 2002 20:16:16 +0000 (20:16 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 16 Oct 2002 20:16:16 +0000 (20:16 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4203 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/DataStructure/Printer.cpp

index 4235fefdce009a8e8dfffcd6234623c5575c8aa5..614cb1fd0e4fca270854657cfd79f5a42eb17d81 100644 (file)
@@ -210,11 +210,24 @@ struct DOTGraphTraits<DSGraph*> : public DefaultDOTGraphTraits {
       GW.emitEdge((void*)1, -1, G->getRetNode().getNode(),
                   RetEdgeDest, "arrowtail=tee,color=gray63");
     }
+
+    // Output all of the call nodes...
+    const std::vector<std::vector<DSNodeHandle> > &FCs = G->getFunctionCalls();
+    for (unsigned i = 0, e = FCs.size(); i != e; ++i) {
+      const std::vector<DSNodeHandle> &Call = FCs[i];
+      GW.emitSimpleNode(&Call, "shape=record", "call", Call.size());
+
+      for (unsigned j = 0, e = Call.size(); j != e; ++j)
+        if (Call[j].getNode()) {
+          int EdgeDest = Call[j].getOffset();
+          if (EdgeDest == 0) EdgeDest = -1;
+          GW.emitEdge(&Call, j, Call[j].getNode(), EdgeDest, "color=gray63");
+        }
+    }
   }
 };
 
 
-
 void DSGraph::writeGraphToFile(std::ostream &O, const string &GraphName) {
   string Filename = GraphName + ".dot";
   O << "Writing '" << Filename << "'...";