X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fopt%2Fopt_blocks.c;h=47fccb6e42c421ee07399861220195d0bb1ae161;hb=8c9921a1fc166552f6e416434fd8394a4fc210a3;hp=6df85940268c701e3e768054a71f5b3d23ce267b;hpb=2232b14b4acf810ae96a69d1d2a33cf150b695d9;p=libfirm diff --git a/ir/opt/opt_blocks.c b/ir/opt/opt_blocks.c index 6df859402..47fccb6e4 100644 --- a/ir/opt/opt_blocks.c +++ b/ir/opt/opt_blocks.c @@ -21,7 +21,6 @@ * @file * @brief Combining congruent blocks * @author Michael Beck - * @version $Id$ * * This phase find congruent blocks. * Two block are congruent, if they contains only equal calculations. @@ -40,7 +39,7 @@ #include "set.h" #include "irpass.h" #include "debug.h" -#include "irtools.h" +#include "util.h" /* define this for general block shaping: congruent blocks are found not only before the end block but anywhere in the graph */ @@ -155,7 +154,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 +292,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 */ @@ -1203,7 +1202,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 */ @@ -1261,11 +1260,8 @@ int shape_blocks(ir_graph *irg) if (res) { /* control flow changed */ - set_irg_extblk_inconsistent(irg); - clear_irg_state(irg, IR_GRAPH_STATE_CONSISTENT_DOMINANCE); - - /* Calls might be removed. */ - set_trouts_inconsistent(); + clear_irg_state(irg, IR_GRAPH_STATE_CONSISTENT_DOMINANCE + | IR_GRAPH_STATE_VALID_EXTENDED_BLOCKS); } for (bl = env.all_blocks; bl != NULL; bl = bl->all_next) {