Chromium Code Reviews| Index: src/compiler/graph-visualizer.cc |
| diff --git a/src/compiler/graph-visualizer.cc b/src/compiler/graph-visualizer.cc |
| index df45d8f11e59d9a1464eea17b8dbf28951c8e129..587da55e252cb715fe732b8577e7529f486d25a3 100644 |
| --- a/src/compiler/graph-visualizer.cc |
| +++ b/src/compiler/graph-visualizer.cc |
| @@ -33,7 +33,7 @@ class GraphVisualizer : public NullNodeVisitor { |
| private: |
| void AnnotateNode(Node* node); |
| - void PrintEdge(Node* from, int index, Node* to); |
| + void PrintEdge(Node::Edge edge); |
| Zone* zone_; |
| NodeSet all_nodes_; |
| @@ -168,7 +168,7 @@ void GraphVisualizer::AnnotateNode(Node* node) { |
| } |
| for (int j = OperatorProperties::GetFrameStateInputCount(node->op()); j > 0; |
| ++i, j--) { |
| - os_ << "|<I" << i.index() << ">X #" << (*i)->id(); |
| + os_ << "|<I" << i.index() << ">F #" << (*i)->id(); |
| } |
| for (int j = OperatorProperties::GetEffectInputCount(node->op()); j > 0; |
| ++i, j--) { |
| @@ -196,7 +196,10 @@ void GraphVisualizer::AnnotateNode(Node* node) { |
| } |
| -void GraphVisualizer::PrintEdge(Node* from, int index, Node* to) { |
| +void GraphVisualizer::PrintEdge(Node::Edge edge) { |
| + Node* from = edge.from(); |
| + int index = edge.index(); |
| + Node* to = edge.to(); |
| bool unconstrained = IsLikelyBackEdge(from, index, to); |
| os_ << " ID" << from->id(); |
| if (all_nodes_.count(to) == 0) { |
| @@ -205,11 +208,15 @@ void GraphVisualizer::PrintEdge(Node* from, int index, Node* to) { |
| GetControlCluster(from) == NULL || |
| (OperatorProperties::GetControlInputCount(from->op()) > 0 && |
| NodeProperties::GetControlInput(from) != to)) { |
| - os_ << ":I" << index << ":n -> ID" << to->id() << ":s"; |
| - if (unconstrained) os_ << " [constraint=false,style=dotted]"; |
| + os_ << ":I" << index << ":n -> ID" << to->id() << ":s" |
| + << "[" << (unconstrained ? "constraint=false" : "") |
| + << (NodeProperties::IsControlEdge(edge) ? "style=dashed" : "") |
|
Michael Starzinger
2014/09/01 10:47:11
suggestion: As discussed offline, it might make se
sigurds
2014/09/02 08:43:53
Done.
|
| + << (NodeProperties::IsEffectEdge(edge) ? "style=dotted" : "") |
| + << (NodeProperties::IsContextEdge(edge) ? "style=bold" : "") << "]"; |
| } else { |
| os_ << " -> ID" << to->id() << ":s [color=transparent" |
| - << (unconstrained ? ", constraint=false" : "") << "]"; |
| + << (unconstrained ? ", constraint=false" : "") |
| + << (NodeProperties::IsControlEdge(edge) ? ", style=dashed" : "") << "]"; |
| } |
| os_ << "\n"; |
| } |
| @@ -219,6 +226,10 @@ void GraphVisualizer::Print() { |
| os_ << "digraph D {\n" |
| << " node [fontsize=8,height=0.25]\n" |
| << " rankdir=\"BT\"\n" |
| + << " ranksep=\"1.2 equally\"\n" |
| + << " overlap=\"false\"\n" |
| + << " splines=\"true\"\n" |
| + << " concentrate=\"true\"\n" |
| << " \n"; |
| // Make sure all nodes have been output before writing out the edges. |
| @@ -244,7 +255,7 @@ void GraphVisualizer::Print() { |
| Node::Inputs inputs = (*i)->inputs(); |
| for (Node::Inputs::iterator iter(inputs.begin()); iter != inputs.end(); |
| ++iter) { |
| - PrintEdge(iter.edge().from(), iter.edge().index(), iter.edge().to()); |
| + PrintEdge(iter.edge()); |
| } |
| } |
| os_ << "}\n"; |