X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firdump.c;h=b2ab4c6fa58c093c469e9f3215d33eaa914438a0;hb=fe6c9130a81330693ec34a0e2a261ccf47b48599;hp=f27bb1d7b006d2b2a982319c7849ae92409bb08a;hpb=65daf5bc390b02d68581f4c431dbdbfaae11b88f;p=libfirm diff --git a/ir/ir/irdump.c b/ir/ir/irdump.c index f27bb1d7b..b2ab4c6fa 100644 --- a/ir/ir/irdump.c +++ b/ir/ir/irdump.c @@ -1004,7 +1004,7 @@ static void dump_node_nodeattr(FILE *F, ir_node *n) break; default: - ; + break; } /* end switch */ } @@ -2181,12 +2181,12 @@ static void dump_blocks_as_subgraphs(FILE *out, ir_graph *irg) * from irg. */ for (i = get_irp_n_irgs(); i > 0;) { - ir_graph *irg = get_irp_irg(--i); - ir_node **arr = (ir_node**)ird_get_irg_link(irg); + ir_graph *other_irg = get_irp_irg(--i); + ir_node **arr = (ir_node**)ird_get_irg_link(other_irg); if (arr == NULL) continue; - dump_graph_from_list(out, irg); + dump_graph_from_list(out, other_irg); DEL_ARR_F(arr); } } @@ -2255,20 +2255,20 @@ static void dump_blocks_extbb_grouped(FILE *F, ir_graph *irg) print_dbg_info(F, get_entity_dbg_info(ent)); for (i = get_irp_n_irgs(); i > 0;) { - ir_graph *irg = get_irp_irg(--i); - list_tuple *lists = (list_tuple*)ird_get_irg_link(irg); + ir_graph *other_irg = get_irp_irg(--i); + list_tuple *lists = (list_tuple*)ird_get_irg_link(other_irg); if (lists) { /* dump the extended blocks first */ if (ARR_LEN(lists->extbb_list)) { - ird_set_irg_link(irg, lists->extbb_list); - dump_extblock_graph(F, irg); + ird_set_irg_link(other_irg, lists->extbb_list); + dump_extblock_graph(F, other_irg); } /* we may have blocks without extended blocks, bad for instance */ if (ARR_LEN(lists->blk_list)) { - ird_set_irg_link(irg, lists->blk_list); - dump_block_graph(F, irg); + ird_set_irg_link(other_irg, lists->blk_list); + dump_block_graph(F, other_irg); } DEL_ARR_F(lists->extbb_list); @@ -2329,8 +2329,11 @@ void dump_ir_graph_file(FILE *out, ir_graph *irg) static void dump_block_to_cfg(ir_node *block, void *env) { FILE *F = (FILE*)env; - int i, fl = 0; - ir_node *pred; + int i; + + if (is_Bad(block) && get_irn_mode(block) == mode_X) { + dump_node(F, block); + } if (is_Block(block)) { /* This is a block. Dump a node for the block. */ @@ -2349,35 +2352,30 @@ static void dump_block_to_cfg(ir_node *block, void *env) /* the generic version. */ dump_irnode_to_file(F, block); - /* Check whether we have bad predecessors to color the block. */ - for (i = get_Block_n_cfgpreds(block) - 1; i >= 0; --i) - if ((fl = is_Bad(get_Block_cfgpred(block, i)))) - break; - fprintf(F, "\""); /* closing quote of info */ if ((block == get_irg_start_block(get_irn_irg(block))) || (block == get_irg_end_block(get_irn_irg(block))) ) fprintf(F, " color:blue "); - else if (fl) - fprintf(F, " color:yellow "); fprintf(F, "}\n"); + /* Dump the edges */ - for (i = get_Block_n_cfgpreds(block) - 1; i >= 0; --i) - if (!is_Bad(skip_Proj(get_Block_cfgpred(block, i)))) { - pred = get_nodes_block(skip_Proj(get_Block_cfgpred(block, i))); - fprintf(F, "edge: { sourcename: \""); - PRINT_NODEID(block); - fprintf(F, "\" targetname: \""); - PRINT_NODEID(pred); - fprintf(F, "\"}\n"); - } + for (i = get_Block_n_cfgpreds(block) - 1; i >= 0; --i) { + ir_node *pred = get_Block_cfgpred(block, i); + if (!is_Bad(pred)) + pred = get_nodes_block(pred); + fprintf(F, "edge: { sourcename: \""); + PRINT_NODEID(block); + fprintf(F, "\" targetname: \""); + PRINT_NODEID(pred); + fprintf(F, "\"}\n"); + } /* Dump dominator/postdominator edge */ if (ir_get_dump_flags() & ir_dump_flag_dominance) { if (get_irg_dom_state(current_ir_graph) == dom_consistent && get_Block_idom(block)) { - pred = get_Block_idom(block); + ir_node *pred = get_Block_idom(block); fprintf(F, "edge: { sourcename: \""); PRINT_NODEID(block); fprintf(F, "\" targetname: \""); @@ -2385,7 +2383,7 @@ static void dump_block_to_cfg(ir_node *block, void *env) fprintf(F, "\" " DOMINATOR_EDGE_ATTR "}\n"); } if (get_irg_postdom_state(current_ir_graph) == dom_consistent && get_Block_ipostdom(block)) { - pred = get_Block_ipostdom(block); + ir_node *pred = get_Block_ipostdom(block); fprintf(F, "edge: { sourcename: \""); PRINT_NODEID(block); fprintf(F, "\" targetname: \""); @@ -2401,8 +2399,7 @@ void dump_cfg(FILE *F, ir_graph *irg) dump_vcg_header(F, get_irg_dump_name(irg), NULL, NULL); /* walk over the blocks in the graph */ - irg_block_walk(get_irg_end(irg), dump_block_to_cfg, NULL, F); - dump_node(F, get_irg_bad(irg)); + irg_walk_graph(irg, dump_block_to_cfg, NULL, F); dump_vcg_footer(F); }