projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
clarify some node comments
[libfirm]
/
ir
/
opt
/
opt_blocks.c
diff --git
a/ir/opt/opt_blocks.c
b/ir/opt/opt_blocks.c
index
d067a85
..
47fccb6
100644
(file)
--- a/
ir/opt/opt_blocks.c
+++ b/
ir/opt/opt_blocks.c
@@
-21,7
+21,6
@@
* @file
* @brief Combining congruent blocks
* @author Michael Beck
* @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.
*
* 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 "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 */
/* 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 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
/**
#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;
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 */
list_add_tail(&part->part_list, &env->partitions);
return part;
} /* create_partition */
@@
-735,7
+734,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;
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);
list_del(&repr->block_list);
@@
-769,10
+768,8
@@
static void apply(ir_graph *irg, partition_t *part)
/* collect new in arrays */
end = get_irg_end(irg);
/* 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;
list_for_each_entry(block_t, bl, &part->blocks, block_list) {
block = bl->block;
- ++block_nr;
DB((dbg, LEVEL_1, "%+F, ", block));
DB((dbg, LEVEL_1, "%+F, ", block));
@@
-1105,6
+1102,7
@@
static void check_for_cf_meet(ir_node *block, void *ctx)
preds[k].pred = pred;
preds[k].index = i;
preds[k].pred = pred;
preds[k].index = i;
+ ++k;
}
if (k > 1)
}
if (k > 1)
@@
-1204,7
+1202,7
@@
int shape_blocks(ir_graph *irg)
/* register a debug mask */
FIRM_DBG_REGISTER(dbg, "firm.opt.blocks");
/* 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 */
DB((dbg, LEVEL_1, "Shaping blocks for %+F\n", irg));
/* works better, when returns are placed at the end of the blocks */
@@
-1262,11
+1260,8
@@
int shape_blocks(ir_graph *irg)
if (res) {
/* control flow changed */
if (res) {
/* control flow changed */
- set_irg_extblk_inconsistent(irg);
- set_irg_doms_inconsistent(irg);
-
- /* 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) {
}
for (bl = env.all_blocks; bl != NULL; bl = bl->all_next) {