X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Firconsconfirm.c;h=1198034fc67441f4558e1db538c326972e49c6ae;hb=0f234e2d94155d13c0e4727871125beda0eaa66d;hp=ceb4c87c2c7d7bfadb11232aca1f305b94baf6a7;hpb=d652537f11d5c3262930cc7f4962c5b1858e649a;p=libfirm diff --git a/ir/ana/irconsconfirm.c b/ir/ana/irconsconfirm.c index ceb4c87c2..1198034fc 100644 --- a/ir/ana/irconsconfirm.c +++ b/ir/ana/irconsconfirm.c @@ -35,6 +35,7 @@ #include "irgwalk.h" #include "irprintf.h" #include "irgopt.h" +#include "irpass.h" #include "irtools.h" #include "array_t.h" #include "debug.h" @@ -225,7 +226,7 @@ static void handle_modeb(ir_node *block, ir_node *selector, pn_Cond pnc, env_t * else in[i] = c_o; } - phi = new_r_Phi(current_ir_graph, user_blk, n, in, mode_b); + phi = new_r_Phi(user_blk, n, in, mode_b); set_irn_n(user, pos, phi); } } @@ -344,7 +345,7 @@ static void handle_if(ir_node *block, ir_node *cmp, pn_Cmp pnc, env_t *env) { * We can replace the input with a Confirm(left, pnc, right). */ if (! c) - c = new_r_Confirm(current_ir_graph, block, left, right, pnc); + c = new_r_Confirm(block, left, right, pnc); pos = get_edge_src_pos(edge); set_irn_n(succ, pos, c); @@ -377,7 +378,7 @@ static void handle_if(ir_node *block, ir_node *cmp, pn_Cmp pnc, env_t *env) { * We can replace the input with a Confirm(right, pnc^-1, left). */ if (! rc) - rc = new_r_Confirm(current_ir_graph, block, right, left, pnc); + rc = new_r_Confirm(block, right, left, pnc); pos = get_edge_src_pos(edge); set_irn_n(succ, pos, rc); @@ -509,7 +510,7 @@ static void insert_non_null(ir_node *ptr, ir_node *block, env_t *env) { ir_mode *mode = get_irn_mode(ptr); c = new_Const(get_mode_null(mode)); - c = new_r_Confirm(current_ir_graph, block, ptr, c, pn_Cmp_Lg); + c = new_r_Confirm(block, ptr, c, pn_Cmp_Lg); } set_irn_n(succ, pos, c); @@ -600,6 +601,11 @@ void construct_confirms(ir_graph *irg) { edges_deactivate(irg); } /* construct_confirms */ +/* Construct a pass. */ +ir_graph_pass_t *construct_confirms_pass(const char *name) { + return def_graph_pass(name ? name : "confirm", construct_confirms); +} /* construct_confirms_pass */ + #if 0 /** * Post-walker: Remove Confirm nodes @@ -631,3 +637,8 @@ void remove_confirms(ir_graph *irg) { optimize_graph_df(irg); set_opt_remove_confirm(rem); } /* remove_confirms */ + +/* Construct a pass. */ +ir_graph_pass_t *remove_confirms_pass(const char *name) { + return def_graph_pass(name ? name : "rem_confirm", remove_confirms); +} /* remove_confirms_pass */