From d3f010a81b7c9e75d62e982cca3b18188338927d Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Sun, 18 Nov 2012 11:34:01 +0900 Subject: [PATCH] Fix the flow-dag connections in the flow graphs. --- tools/qfcc/source/dot_dag.c | 17 +++++++++++------ tools/qfcc/source/dot_flow.c | 3 ++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/tools/qfcc/source/dot_dag.c b/tools/qfcc/source/dot_dag.c index 02111bfc3..3be454d23 100644 --- a/tools/qfcc/source/dot_dag.c +++ b/tools/qfcc/source/dot_dag.c @@ -61,12 +61,16 @@ static void print_root_nodes (dstring_t *dstr, dag_t *dag) { set_iter_t *node_iter; - dasprintf (dstr, " subgraph roots_%p {", dag); - dasprintf (dstr, " rank=same;"); + dasprintf (dstr, " subgraph roots_%p {", dag); + dasprintf (dstr, " rank=same;"); for (node_iter = set_first (dag->roots); node_iter; - node_iter = set_next (node_iter)) - print_node_def (dstr, dag->nodes[node_iter->member]); - dasprintf (dstr, " }\n"); + node_iter = set_next (node_iter)) { + 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"); } static void @@ -120,7 +124,8 @@ void print_dag (dstring_t *dstr, dag_t *dag) { 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_child_nodes (dstr, dag); for (i = 0; i < dag->num_nodes; i++) diff --git a/tools/qfcc/source/dot_flow.c b/tools/qfcc/source/dot_flow.c index 22282969c..6f61bdf49 100644 --- a/tools/qfcc/source/dot_flow.c +++ b/tools/qfcc/source/dot_flow.c @@ -89,7 +89,8 @@ print_flow_node (dstring_t *dstr, flowgraph_t *graph, flownode_t *node, dasprintf (dstr, "%*s}\n", indent, ""); } 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); } }