X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firvrfy.c;h=e898a0c3558f511ed61ad0cbd0f7b992aad0884b;hb=8c816ea9c772e91daaaea7abeb4a73e7236408a5;hp=e53c692eb78dfcc2c5b1b47320b5c23de98f2cc1;hpb=095637c0b14b62d2216d849a4d5f401dd01fe12c;p=libfirm diff --git a/ir/ir/irvrfy.c b/ir/ir/irvrfy.c index e53c692eb..e898a0c35 100644 --- a/ir/ir/irvrfy.c +++ b/ir/ir/irvrfy.c @@ -16,6 +16,7 @@ # include "irprog.h" # include "irgraph_t.h" +# include "ircgcons.h" # include "irvrfy.h" # include "irgwalk.h" # include "irdump.h" @@ -525,9 +526,13 @@ vrfy_Proj_proj(ir_node *p, ir_graph *irg) { 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: @@ -563,6 +568,7 @@ int irn_vrfy_irg(ir_node *n, ir_graph *irg) "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); @@ -624,10 +630,13 @@ int irn_vrfy_irg(ir_node *n, ir_graph *irg) 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: @@ -850,9 +859,9 @@ int irn_vrfy_irg(ir_node *n, ir_graph *irg) 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; @@ -1021,6 +1030,7 @@ int irn_vrfy_irg(ir_node *n, ir_graph *irg) ); break; + case iro_Phi: { ir_node *block = get_nodes_block(n); @@ -1046,6 +1056,11 @@ int irn_vrfy_irg(ir_node *n, ir_graph *irg) 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]);