# include "irprog.h"
# include "irgraph_t.h"
+# include "ircgcons.h"
# include "irvrfy.h"
# include "irgwalk.h"
# include "irdump.h"
break;
case iro_EndReg:
+ ASSERT_AND_RET((get_irp_ip_view_state() != ip_view_no),
+ "EndReg may only appear if ip view is constructed.", 0);
break;
case iro_EndExcept:
+ ASSERT_AND_RET((get_irp_ip_view_state() != ip_view_no),
+ "EndExcept may only appear if ip view is constructed.", 0);
break;
default:
"Node is not stored on proper IR graph!", 0,
show_node_on_graph(irg, n);
);
+ assert(get_irn_irg(n) == irg);
}
opcode = get_irn_opcode(n);
break;
case iro_Break:
+ ASSERT_AND_RET((get_irp_ip_view_state() != ip_view_no),
+ "Break may only appear if ip view is constructed.", 0);
ASSERT_AND_RET(
/* Jmp: BB --> X */
- mymode == mode_X, "Jmp node", 0
+ mymode == mode_X, "Break node", 0
);
+
break;
case iro_Cond:
case iro_Minus:
op1mode = get_irn_mode(in[1]);
ASSERT_AND_RET_DBG(
- /* Minus: BB x float --> float */
- op1mode == mymode && mode_is_float(op1mode), "Minus node", 0,
- show_unop_failure(n , "/* Minus: BB x float --> float */");
+ /* Minus: BB x num --> num */
+ op1mode == mymode && mode_is_num(op1mode), "Minus node", 0,
+ show_unop_failure(n , "/* Minus: BB x num --> num */");
);
op_is_symmetric = 2;
break;
);
break;
+
case iro_Phi:
{
ir_node *block = get_nodes_block(n);
ASSERT_AND_RET( mode_is_dataM(mymode), "Phi node", 0 );
break;
}
+ case iro_Filter:
+ ASSERT_AND_RET((get_irp_ip_view_state() != ip_view_no),
+ "Filter may only appear if ip view is constructed.", 0);
+ /* We should further do tests as for Proj and Phi. */
+ break;
case iro_Load:
op1mode = get_irn_mode(in[1]);
op2mode = get_irn_mode(in[2]);