From 63d0b5f748504ea5cbd1e2b09dad2969a31c695a Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Wed, 8 Sep 2004 16:05:56 +0000 Subject: [PATCH] bugfix when dumping dominator info color blocks with Bad predecessor yellow, add info about bad predecessors [r3838] --- ir/ir/irdump.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/ir/ir/irdump.c b/ir/ir/irdump.c index 48a07027d..e48c96458 100644 --- a/ir/ir/irdump.c +++ b/ir/ir/irdump.c @@ -1971,7 +1971,7 @@ dump_ir_block_graph_w_types (ir_graph *irg, const char *suffix) static void dump_block_to_cfg(ir_node *block, void *env) { FILE *F = env; - int i; + int i, fl; ir_node *pred; if (is_Block(block)) { @@ -1988,12 +1988,29 @@ dump_block_to_cfg(ir_node *block, void *env) { fprintf (F, "\" "); fprintf(F, "info1:\""); if (dump_dominator_information_flag) - fprintf(F, "info1:\"dom depth %d\n", get_Block_dom_depth(block)); + fprintf(F, "dom depth %d\n", get_Block_dom_depth(block)); + + /* show arity and possible Bad predecessors of the block */ + fprintf(F, "arity: %d\n", get_Block_n_cfgpreds(block)); + for (fl = i = 0; i < get_Block_n_cfgpreds(block); ++i) { + ir_node *pred = get_Block_cfgpred(block, i); + if (is_Bad(pred)) { + if (! fl) + fprintf(F, "Bad pred at pos: "); + fprintf(F, "%d ", i); + fl = 1; + } + } + if (fl) + fprintf(F, "\n"); + 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 */ -- 2.20.1