Set the outs to inconsistent at the end of transform_irg().
[libfirm] / ir / ir / irvrfy.c
index f615fec..6042e31 100644 (file)
@@ -747,9 +747,11 @@ static int verify_node_Proj_CallBegin(ir_node *n, ir_node *p) {
 static int verify_node_Proj_EndReg(ir_node *n, ir_node *p) {
        (void) n;
        (void) p;
+#ifdef INTERPROCEDURAL_VIEW
        ASSERT_AND_RET(
                (get_irp_ip_view_state() != ip_view_no),
                "EndReg may only appear if ip view is constructed.", 0);
+#endif
        return 1;
 }
 
@@ -759,9 +761,11 @@ static int verify_node_Proj_EndReg(ir_node *n, ir_node *p) {
 static int verify_node_Proj_EndExcept(ir_node *n, ir_node *p) {
        (void) n;
        (void) p;
+#ifdef INTERPROCEDURAL_VIEW
        ASSERT_AND_RET(
                (get_irp_ip_view_state() != ip_view_no),
                "EndExcept may only appear if ip view is constructed.", 0);
+#endif
        return 1;
 }
 
@@ -926,8 +930,10 @@ static int verify_node_Break(ir_node *n, ir_graph *irg) {
        ir_mode *mymode = get_irn_mode(n);
        (void) irg;
 
+#ifdef INTERPROCEDURAL_VIEW
        ASSERT_AND_RET((get_irp_ip_view_state() != ip_view_no),
                "Break may only appear if ip view is constructed.", 0);
+#endif
        ASSERT_AND_RET(
                /* Jmp: BB --> X */
                mymode == mode_X, "Break node", 0
@@ -1525,10 +1531,10 @@ static int verify_node_Conv(ir_node *n, ir_graph *irg) {
        (void) irg;
 
        ASSERT_AND_RET_DBG(
-               /* Conv: BB x datab1 --> datab2 */
-               mode_is_datab(op1mode) && mode_is_datab(mymode),
+               get_irg_phase_state(irg) == phase_backend ||
+               (mode_is_datab(op1mode) && mode_is_data(mymode)),
                "Conv node", 0,
-               show_unop_failure(n, "/* Conv: BB x datab1 --> datab2 */");
+               show_unop_failure(n, "/* Conv: BB x datab --> data */");
        );
        return 1;
 }
@@ -1559,7 +1565,7 @@ static int verify_node_Phi(ir_node *n, ir_graph *irg) {
        int i;
        (void) irg;
 
-       if (! is_Bad(block) && get_irg_phase_state(get_irn_irg(n)) != phase_building) {
+       if (! is_Bad(block) && get_irg_phase_state(get_irn_irg(n)) != phase_building && get_irn_arity(n) > 0) {
                /* a Phi node MUST have the same number of inputs as its block */
                ASSERT_AND_RET_DBG(
                        get_irn_arity(n) == get_irn_arity(block),
@@ -1615,8 +1621,10 @@ static int verify_node_Phi(ir_node *n, ir_graph *irg) {
 static int verify_node_Filter(ir_node *n, ir_graph *irg) {
        (void) n;
        (void) irg;
+#ifdef INTERPROCEDURAL_VIEW
        ASSERT_AND_RET((get_irp_ip_view_state() != ip_view_no),
                "Filter may only appear if ip view is constructed.", 0);
+#endif
        /* We should further do tests as for Proj and Phi. */
        return 1;
 }
@@ -1940,11 +1948,12 @@ int irn_vrfy_irg(ir_node *n, ir_graph *irg) {
 }
 
 int irn_vrfy(ir_node *n) {
-       int res = 1;
 #ifdef DEBUG_libfirm
-       res = irn_vrfy_irg(n, current_ir_graph);
+       return irn_vrfy_irg(n, current_ir_graph);
+#else
+       (void)n;
+       return 1;
 #endif
-       return res;
 }
 
 /*-----------------------------------------------------------------*/
@@ -2011,6 +2020,9 @@ int irg_verify(ir_graph *irg, unsigned flags) {
                else
                        fprintf(stderr, "irg_verify: Verifying graph %p failed\n", (void *)current_ir_graph);
        }
+#else
+       (void)irg;
+       (void)flags;
 #endif /* DEBUG_libfirm */
 
        return res;