refactor some dumping code and add some functions that dump to FILE*
[libfirm] / ir / ir / irvrfy.c
index f615cd1..360530d 100644 (file)
@@ -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");
                                        }
                                }