| Index: src/compiler/graph-visualizer.cc
|
| diff --git a/src/compiler/graph-visualizer.cc b/src/compiler/graph-visualizer.cc
|
| index df45d8f11e59d9a1464eea17b8dbf28951c8e129..0edc0d3d5cbe614d1e3f9d87759d795ca8e0540e 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=bold" : "")
|
| + << (NodeProperties::IsEffectEdge(edge) ? "style=dotted" : "")
|
| + << (NodeProperties::IsContextEdge(edge) ? "style=dashed" : "") << "]";
|
| } 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";
|
|
|