size/aligment of types is now unsigned and in bytes, this fixes fehler095.c (array...
[libfirm] / ir / opt / ldstopt.c
index b2db657..055b6be 100644 (file)
@@ -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);