Reviewers: Michael Starzinger,
Message:
FYI
https://codereview.chromium.org/523593002/diff/1/src/compiler/graph-visualizer.cc
File src/compiler/graph-visualizer.cc (right):
https://codereview.chromium.org/523593002/diff/1/src/compiler/graph-visualizer.cc#newcode213
src/compiler/graph-visualizer.cc:213: <<
(NodeProperties::IsControlEdge(edge) ? "style=dashed" : "")
On 2014/09/01 10:47:11, Michael Starzinger wrote:
suggestion: As discussed offline, it might make sense to flip the
styles of
control-edges and context-edges. To me the most important edges are
the
control-edges most of the time, so intuitively it makes sense to me to
have them
be bold.
Done.
Description:
Improve graph visualizer for deoptimization and readablity.
[email protected]
Please review this at https://codereview.chromium.org/523593002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+18, -7 lines):
M src/compiler/graph-visualizer.cc
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";
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.