Fix the flow-dag connections in the flow graphs.

This commit is contained in:
Bill Currie 2012-11-18 11:34:01 +09:00
parent d58595660f
commit d3f010a81b
2 changed files with 13 additions and 7 deletions

View File

@ -64,8 +64,12 @@ print_root_nodes (dstring_t *dstr, dag_t *dag)
dasprintf (dstr, " subgraph roots_%p {", dag); dasprintf (dstr, " subgraph roots_%p {", dag);
dasprintf (dstr, " rank=same;"); dasprintf (dstr, " rank=same;");
for (node_iter = set_first (dag->roots); node_iter; for (node_iter = set_first (dag->roots); node_iter;
node_iter = set_next (node_iter)) node_iter = set_next (node_iter)) {
print_node_def (dstr, dag->nodes[node_iter->member]); dagnode_t *node = dag->nodes[node_iter->member];
print_node_def (dstr, node);
dasprintf (dstr, " dag_%p ->dagnode_%p [style=invis];\n", dag,
node);
}
dasprintf (dstr, " }\n"); dasprintf (dstr, " }\n");
} }
@ -120,7 +124,8 @@ void
print_dag (dstring_t *dstr, dag_t *dag) print_dag (dstring_t *dstr, dag_t *dag)
{ {
int i; int i;
dasprintf (dstr, " subgraph cluster_dag_%p {", dag); dasprintf (dstr, " subgraph cluster_dag_%p {\n", dag);
dasprintf (dstr, " dag_%p [label=\"\", style=invis];\n", dag);
print_root_nodes (dstr, dag); print_root_nodes (dstr, dag);
print_child_nodes (dstr, dag); print_child_nodes (dstr, dag);
for (i = 0; i < dag->num_nodes; i++) for (i = 0; i < dag->num_nodes; i++)

View File

@ -89,7 +89,8 @@ print_flow_node (dstring_t *dstr, flowgraph_t *graph, flownode_t *node,
dasprintf (dstr, "%*s}\n", indent, ""); dasprintf (dstr, "%*s}\n", indent, "");
} }
if (node->dag) { if (node->dag) {
dasprintf (dstr, " fn_%p -> dagnode_%p;\n", node, node->dag); dasprintf (dstr, " fn_%p -> dag_%p [lhead=cluster_dag_%p];\n", node,
node->dag, node->dag);
print_dag (dstr, node->dag); print_dag (dstr, node->dag);
} }
} }