X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fopt%2Fldstopt.c;h=055b6be112b22a1565d5605ca82a95056d82cfb3;hb=4ebc4b6497324aa5d2380a897c75d3c391760ba0;hp=b2db6574ae725f82d933117a626c61a02f677328;hpb=e53d5b7c4f0a2ca3cc0eba4a128de74b3edccff4;p=libfirm diff --git a/ir/opt/ldstopt.c b/ir/opt/ldstopt.c index b2db6574a..055b6be11 100644 --- a/ir/opt/ldstopt.c +++ b/ir/opt/ldstopt.c @@ -625,7 +625,7 @@ static unsigned follow_Mem_chain(ir_node *load, ir_node *curr) { for (i = get_Sync_n_preds(pred) - 1; i >= 0; --i) { res |= follow_Mem_chain(load, skip_Proj(get_Sync_pred(pred, i))); if (res) - break; + return res; } } @@ -1201,6 +1201,7 @@ static void do_load_store_optimize(ir_node *n, void *env) { case iro_Phi: wenv->changes |= optimize_phi(n, wenv); + break; default: ; @@ -1685,7 +1686,7 @@ static void do_dfs(ir_graph *irg, loop_env *env) { /** * Initialize new phase data. We do this always explicit, so return NULL here */ -static void *init_loop_data(ir_phase *ph, ir_node *irn, void *data) { +static void *init_loop_data(ir_phase *ph, const ir_node *irn, void *data) { (void)ph; (void)irn; (void)data; @@ -1728,9 +1729,6 @@ void optimize_load_store(ir_graph *irg) { assert(get_irg_pinned(irg) != op_pin_state_floats && "LoadStore optimization needs pinned graph"); - if (! get_opt_redundant_loadstore()) - return; - /* we need landing pads */ remove_critical_cf_edges(irg);