X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firvrfy.c;h=360530d1d1f2ecf5003e6f25f5dcf071ae50dfc0;hb=4b394b858d56160b0b79e4ae0d51421221d70691;hp=f615cd1f352390beb630ba8a9a10892071b93c54;hpb=63600b78354b14c3b673e80d0d82d029b82b2ef8;p=libfirm diff --git a/ir/ir/irvrfy.c b/ir/ir/irvrfy.c index f615cd1f3..360530d1d 100644 --- a/ir/ir/irvrfy.c +++ b/ir/ir/irvrfy.c @@ -850,13 +850,15 @@ verify_node_Proj(ir_node *p, ir_graph *irg) { */ static int verify_node_Block(ir_node *n, ir_graph *irg) { int i; - ir_node *mb = get_irn_n(n, -1); + ir_node *mb = get_Block_MacroBlock(n); - if (mb != n) { - /* must be a partBlock */ - ASSERT_AND_RET(mb != NULL && (is_Block(mb) || is_Bad(mb)), "wrong MacroBlock header", 0); + ASSERT_AND_RET(is_Block(mb) || is_Bad(mb), "Block node with wrong MacroBlock", 0); + + if (is_Block(mb) && mb != n) { + /* Blocks with more than one predecessor must be header blocks */ ASSERT_AND_RET(get_Block_n_cfgpreds(n) == 1, "partBlock with more than one predecessor", 0); } + for (i = get_Block_n_cfgpreds(n) - 1; i >= 0; --i) { ir_node *pred = get_Block_cfgpred(n, i); ASSERT_AND_RET( @@ -2091,7 +2093,7 @@ static void check_bads(ir_node *node, void *env) { fprintf(stderr, "irg_vrfy_bads: Block %ld has Bad predecessor\n", get_irn_node_nr(node)); } if (get_node_verification_mode() == FIRM_VERIFICATION_ON) { - dump_ir_block_graph(current_ir_graph, "-assert"); + dump_ir_block_graph_sched(current_ir_graph, "-assert"); assert(0 && "Bad CF detected"); } } @@ -2108,7 +2110,7 @@ static void check_bads(ir_node *node, void *env) { fprintf(stderr, "irg_vrfy_bads: node %ld has Bad Block\n", get_irn_node_nr(node)); } if (get_node_verification_mode() == FIRM_VERIFICATION_ON) { - dump_ir_block_graph(current_ir_graph, "-assert"); + dump_ir_block_graph_sched(current_ir_graph, "-assert"); assert(0 && "Bad CF detected"); } } @@ -2122,7 +2124,7 @@ static void check_bads(ir_node *node, void *env) { fprintf(stderr, "irg_vrfy_bads: node %ld is a Tuple\n", get_irn_node_nr(node)); } if (get_node_verification_mode() == FIRM_VERIFICATION_ON) { - dump_ir_block_graph(current_ir_graph, "-assert"); + dump_ir_block_graph_sched(current_ir_graph, "-assert"); assert(0 && "Tuple detected"); } } @@ -2143,7 +2145,7 @@ static void check_bads(ir_node *node, void *env) { fprintf(stderr, "irg_vrfy_bads: Phi %ld has Bad Input\n", get_irn_node_nr(node)); } if (get_node_verification_mode() == FIRM_VERIFICATION_ON) { - dump_ir_block_graph(current_ir_graph, "-assert"); + dump_ir_block_graph_sched(current_ir_graph, "-assert"); assert(0 && "Bad CF detected"); } } @@ -2157,7 +2159,7 @@ static void check_bads(ir_node *node, void *env) { fprintf(stderr, "irg_vrfy_bads: node %ld has Bad Input\n", get_irn_node_nr(node)); } if (get_node_verification_mode() == FIRM_VERIFICATION_ON) { - dump_ir_block_graph(current_ir_graph, "-assert"); + dump_ir_block_graph_sched(current_ir_graph, "-assert"); assert(0 && "Bad NON-CF detected"); } }