X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fopt%2Fifconv.c;h=1e2eba09b11e975cb2021c2050e2581834d9f044;hb=45ecc187cee7107c83c1f9618a1e1e586df73644;hp=b7ad5e3483355a8c58ad0d6b48efe9913ddf6298;hpb=1adbf5a888bc38944df7db0c201b2a68ccb265e1;p=libfirm diff --git a/ir/opt/ifconv.c b/ir/opt/ifconv.c index b7ad5e348..1e2eba09b 100644 --- a/ir/opt/ifconv.c +++ b/ir/opt/ifconv.c @@ -39,8 +39,7 @@ #include "irgopt.h" #include "irgwalk.h" #include "irtools.h" -#include "array.h" -#include "xmalloc.h" +#include "array_t.h" // debug #include "irdump.h" @@ -271,14 +270,15 @@ restart: if (projx0 == NULL) continue; cond = get_Proj_pred(projx0); - if (get_irn_op(cond) != op_Cond) continue; + if (! is_Cond(cond)) + continue; /* We only handle boolean decisions, no switches */ if (get_irn_mode(get_Cond_selector(cond)) != mode_b) continue; for (j = i + 1; j < arity; ++j) { ir_node* projx1; - ir_node* cond; + ir_node* sel; ir_node* mux_block; ir_node* phi; ir_node* pred1; @@ -303,7 +303,7 @@ restart: prepare_path(block, j, dependency); arity = get_irn_arity(block); - cond = get_Cond_selector(cond); + sel = get_Cond_selector(cond); mux_block = get_nodes_block(cond); cond_dbg = get_irn_dbg_info(cond); @@ -331,7 +331,7 @@ restart: f = val_i; } - mux = new_rd_Mux(cond_dbg, current_ir_graph, mux_block, cond, f, t, get_irn_mode(phi)); + mux = new_rd_Mux(cond_dbg, current_ir_graph, mux_block, sel, f, t, get_irn_mode(phi)); DB((dbg, LEVEL_2, "Generating %+F for %+F\n", mux, phi)); } @@ -537,13 +537,13 @@ void opt_if_conv(ir_graph *irg, const ir_settings_if_conv_t *params) compute_cdep(irg); assure_doms(irg); - set_using_block_mark(irg); + ir_reserve_resources(irg, IR_RESOURCE_BLOCK_MARK); irg_block_walk_graph(irg, init_block_link, NULL, NULL); irg_walk_graph(irg, collect_phis, NULL, NULL); irg_block_walk_graph(irg, NULL, if_conv_walker, &p); - clear_using_block_mark(irg); + ir_free_resources(irg, IR_RESOURCE_BLOCK_MARK); local_optimize_graph(irg);