normalize_n_returns does produce unreachable code and invalidates other stuff
[libfirm] / ir / opt / opt_blocks.c
index ab9bd39..7bb50db 100644 (file)
@@ -155,7 +155,7 @@ typedef struct listmap_t {
 DEBUG_ONLY(static firm_dbg_module_t *dbg;)
 
 /** Next partition number. */
-DEBUG_ONLY(static unsigned part_nr = 0);
+DEBUG_ONLY(static unsigned part_nr = 0;)
 
 #ifdef DEBUG_libfirm
 /**
@@ -293,7 +293,7 @@ static partition_t *create_partition(ir_node *meet_block, environment_t *env)
        INIT_LIST_HEAD(&part->blocks);
        part->meet_block = meet_block;
        part->n_blocks   = 0;
-       DEBUG_ONLY(part->nr = part_nr++);
+       DEBUG_ONLY(part->nr = part_nr++;)
        list_add_tail(&part->part_list, &env->partitions);
        return part;
 }  /* create_partition */
@@ -735,7 +735,7 @@ static void apply(ir_graph *irg, partition_t *part)
        ir_node **ins, **phi_ins;
        phi_t   *repr_phi, *phi;
        pair_t  *repr_pair, *pair;
-       int     i, j, k, n, block_nr, n_phis;
+       int     i, j, k, n, n_phis;
 
        list_del(&repr->block_list);
 
@@ -769,10 +769,8 @@ static void apply(ir_graph *irg, partition_t *part)
 
        /* collect new in arrays */
        end = get_irg_end(irg);
-       block_nr = 0;
        list_for_each_entry(block_t, bl, &part->blocks, block_list) {
                block = bl->block;
-               ++block_nr;
 
                DB((dbg, LEVEL_1, "%+F, ", block));
 
@@ -1103,8 +1101,9 @@ static void check_for_cf_meet(ir_node *block, void *ctx)
                if (! is_Jmp(pred) && ! is_Raise(pred) && !is_Bad(pred))
                        continue;
 
-               preds[k++].pred  = pred;
-               preds[k++].index = i;
+               preds[k].pred  = pred;
+               preds[k].index = i;
+               ++k;
        }
 
        if (k > 1)
@@ -1204,7 +1203,7 @@ int shape_blocks(ir_graph *irg)
        /* register a debug mask */
        FIRM_DBG_REGISTER(dbg, "firm.opt.blocks");
 
-       DEBUG_ONLY(part_nr = 0);
+       DEBUG_ONLY(part_nr = 0;)
        DB((dbg, LEVEL_1, "Shaping blocks for %+F\n", irg));
 
        /* works better, when returns are placed at the end of the blocks */
@@ -1263,7 +1262,7 @@ int shape_blocks(ir_graph *irg)
        if (res) {
                /* control flow changed */
                set_irg_extblk_inconsistent(irg);
-               set_irg_doms_inconsistent(irg);
+               clear_irg_state(irg, IR_GRAPH_STATE_CONSISTENT_DOMINANCE);
 
                /* Calls might be removed. */
                set_trouts_inconsistent();