X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firdump.c;h=b1377a8a569484a93790ddb149a5c9531ee428c7;hb=1de3ff1c7f4478924c6348f774608e60b962d055;hp=d1c5eb67645a4e8ecf21a71d80d7727fad70b090;hpb=d6cd4cd86e3464bd672bb916cea915298dcfd6a9;p=libfirm diff --git a/ir/ir/irdump.c b/ir/ir/irdump.c index d1c5eb676..b1377a8a5 100644 --- a/ir/ir/irdump.c +++ b/ir/ir/irdump.c @@ -700,8 +700,6 @@ void dump_node_opcode(FILE *F, ir_node *n) fprintf(F, "%s", get_irn_opname(n)); break; case iro_Block: - if (is_Block_dead(n)) - fputs("Dead ", F); if (n == get_irg_start_block(get_irn_irg(n))) fputs("Start ", F); if (n == get_irg_end_block(get_irn_irg(n))) @@ -1098,10 +1096,7 @@ static void dump_node_vcgattr(FILE *F, ir_node *node, ir_node *local, int bad) print_vcg_color(F, ird_color_error); break; case iro_Block: - if (is_Block_dead(n)) - print_vcg_color(F, ird_color_dead_block_background); - else - print_vcg_color(F, ird_color_block_background); + print_vcg_color(F, ird_color_block_background); break; case iro_Phi: print_vcg_color(F, ird_color_phi); @@ -1559,8 +1554,6 @@ static void dump_whole_block(FILE *F, ir_node *block) /* colorize blocks */ if (! get_Block_matured(block)) color = ird_color_block_background; - if (is_Block_dead(block)) - color = ird_color_dead_block_background; fprintf(F, "\" status:clustered "); print_vcg_color(F, color); @@ -2336,9 +2329,13 @@ 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; + int i; ir_node *pred; + 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. */ fprintf(F, "node: {title: \""); PRINT_NODEID(block); @@ -2356,30 +2353,25 @@ 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) { @@ -2408,8 +2400,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); }