aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-into-ssa.c
diff options
context:
space:
mode:
authorZdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>2004-09-26 19:53:13 +0000
committerZdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>2004-09-26 19:53:13 +0000
commit31b09bd5634bc5019f3fca36001c758ffec922d9 (patch)
tree5a3c9bcba3d78b6ee1c1f3cb79e280b227446aa2 /gcc/tree-into-ssa.c
parent89a7c9a34d40a13086d8e0e161e7335cdabbf01b (diff)
* bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style. (bitmap_iterator): New type. (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init, bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1, bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1, bmp_iter_and_init, bmp_iter_and_next): New functions. * basic-block.h (EXECUTE_IF_SET_IN_REG_SET, EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to use iterator-style EXECUTE_IF_IN_BITMAP macros. * bitmap.c (bitmap_print): Ditto. * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range, btr_def_live_range): Ditto. * cfganal.c (compute_dominance_frontiers_1) Ditto. * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics): Ditto. * ddg.c (build_inter_loop_deps): Ditto. * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update): Ditto. * except.c (remove_eh_handler): Ditto. * flow.c (reg_set_to_hard_reg_set): Ditto. * gcse.c (clear_modify_mem_tables): Ditto. * global.c (build_insn_chain): Ditto. * ifcvt.c (dead_or_predicable): Ditto. * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg): Ditto. * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto. * ra-rewrite.c (reloads_to_loads, rewrite_program2, detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto. * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region, tree_purge_all_dead_eh_edges): Ditto. * tree-into-ssa.c (compute_global_livein, insert_phi_nodes, insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags, rewrite_ssa_into_ssa): Ditto. * tree-outof-ssa.c (find_replaceable_exprs): Ditto. * tree-sra.c (scan_function, decide_instantiations, scalarize_parms): Ditto. * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape, compute_flow_sensitive_aliasing, maybe_create_global_var, dump_points_to_info_for): Ditto. * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto. * tree-ssa-dse.c (dse_finalize_block): Ditto. * tree-ssa-live.c (live_worklist, calculate_live_on_entry, calculate_live_on_exit, build_tree_conflict_graph, dump_live_info): Ditto. * tree-ssa-loop-ivopts.c (find_induction_variables, find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map, determine_use_iv_costs, determine_set_costs, find_best_candidate, set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data): Ditto. * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto. * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops, add_call_read_ops): Ditto. * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@88145 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-into-ssa.c')
-rw-r--r--gcc/tree-into-ssa.c84
1 files changed, 51 insertions, 33 deletions
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index e71eb4745aa..696bdfdc1d1 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -231,14 +231,15 @@ compute_global_livein (bitmap livein, bitmap def_blocks)
{
basic_block bb, *worklist, *tos;
int i;
+ bitmap_iterator bi;
tos = worklist
= (basic_block *) xmalloc (sizeof (basic_block) * (n_basic_blocks + 1));
- EXECUTE_IF_SET_IN_BITMAP (livein, 0, i,
+ EXECUTE_IF_SET_IN_BITMAP (livein, 0, i, bi)
{
- *tos++ = BASIC_BLOCK (i);
- });
+ *tos++ = BASIC_BLOCK (i);
+ }
/* Iterate until the worklist is empty. */
while (tos != worklist)
@@ -602,6 +603,7 @@ insert_phi_nodes (bitmap *dfs, bitmap names_to_rename)
{
size_t i;
varray_type work_stack;
+ bitmap_iterator bi;
timevar_push (TV_TREE_INSERT_PHI_NODES);
@@ -615,15 +617,17 @@ insert_phi_nodes (bitmap *dfs, bitmap names_to_rename)
each definition block. */
if (names_to_rename)
{
- EXECUTE_IF_SET_IN_BITMAP (names_to_rename, 0, i,
+ EXECUTE_IF_SET_IN_BITMAP (names_to_rename, 0, i, bi)
{
if (ssa_name (i))
insert_phi_nodes_1 (ssa_name (i), dfs, &work_stack);
- });
+ }
}
else if (vars_to_rename)
- EXECUTE_IF_SET_IN_BITMAP (vars_to_rename, 0, i,
- insert_phi_nodes_1 (referenced_var (i), dfs, &work_stack));
+ EXECUTE_IF_SET_IN_BITMAP (vars_to_rename, 0, i, bi)
+ {
+ insert_phi_nodes_1 (referenced_var (i), dfs, &work_stack);
+ }
else
for (i = 0; i < num_referenced_vars; i++)
insert_phi_nodes_1 (referenced_var (i), dfs, &work_stack);
@@ -964,6 +968,7 @@ insert_phi_nodes_for (tree var, bitmap *dfs, varray_type *work_stack)
edge e;
tree phi;
basic_block bb;
+ bitmap_iterator bi;
def_map = find_def_blocks_for (var);
if (def_map == NULL)
@@ -971,10 +976,10 @@ insert_phi_nodes_for (tree var, bitmap *dfs, varray_type *work_stack)
phi_insertion_points = BITMAP_XMALLOC ();
- EXECUTE_IF_SET_IN_BITMAP (def_map->def_blocks, 0, bb_index,
+ EXECUTE_IF_SET_IN_BITMAP (def_map->def_blocks, 0, bb_index, bi)
{
VARRAY_PUSH_GENERIC_PTR_NOGC (*work_stack, BASIC_BLOCK (bb_index));
- });
+ }
/* Pop a block off the worklist, add every block that appears in
the original block's dfs that we have not already processed to
@@ -991,6 +996,7 @@ insert_phi_nodes_for (tree var, bitmap *dfs, varray_type *work_stack)
while (VARRAY_ACTIVE_SIZE (*work_stack) > 0)
{
int dfs_index;
+ bitmap_iterator bi;
bb = VARRAY_TOP_GENERIC_PTR_NOGC (*work_stack);
bb_index = bb->index;
@@ -999,13 +1005,13 @@ insert_phi_nodes_for (tree var, bitmap *dfs, varray_type *work_stack)
EXECUTE_IF_AND_COMPL_IN_BITMAP (dfs[bb_index],
phi_insertion_points,
- 0, dfs_index,
+ 0, dfs_index, bi)
{
basic_block bb = BASIC_BLOCK (dfs_index);
VARRAY_PUSH_GENERIC_PTR_NOGC (*work_stack, bb);
bitmap_set_bit (phi_insertion_points, dfs_index);
- });
+ }
}
/* Remove the blocks where we already have the phis. */
@@ -1018,21 +1024,19 @@ insert_phi_nodes_for (tree var, bitmap *dfs, varray_type *work_stack)
/* And insert the PHI nodes. */
EXECUTE_IF_AND_IN_BITMAP (phi_insertion_points, def_map->livein_blocks,
- 0, bb_index,
- do
- {
- bb = BASIC_BLOCK (bb_index);
+ 0, bb_index, bi)
+ {
+ bb = BASIC_BLOCK (bb_index);
- phi = create_phi_node (var, bb);
+ phi = create_phi_node (var, bb);
- /* If we are rewriting ssa names, add also the phi arguments. */
- if (TREE_CODE (var) == SSA_NAME)
- {
- for (e = bb->pred; e; e = e->pred_next)
- add_phi_arg (&phi, var, e);
- }
- }
- while (0));
+ /* If we are rewriting ssa names, add also the phi arguments. */
+ if (TREE_CODE (var) == SSA_NAME)
+ {
+ for (e = bb->pred; e; e = e->pred_next)
+ add_phi_arg (&phi, var, e);
+ }
+ }
BITMAP_XFREE (phi_insertion_points);
}
@@ -1260,16 +1264,21 @@ debug_def_blocks_r (void **slot, void *data ATTRIBUTE_UNUSED)
{
unsigned long i;
struct def_blocks_d *db_p = (struct def_blocks_d *) *slot;
+ bitmap_iterator bi;
fprintf (stderr, "VAR: ");
print_generic_expr (stderr, db_p->var, dump_flags);
fprintf (stderr, ", DEF_BLOCKS: { ");
- EXECUTE_IF_SET_IN_BITMAP (db_p->def_blocks, 0, i,
- fprintf (stderr, "%ld ", i));
+ EXECUTE_IF_SET_IN_BITMAP (db_p->def_blocks, 0, i, bi)
+ {
+ fprintf (stderr, "%ld ", i);
+ }
fprintf (stderr, "}");
fprintf (stderr, ", LIVEIN_BLOCKS: { ");
- EXECUTE_IF_SET_IN_BITMAP (db_p->livein_blocks, 0, i,
- fprintf (stderr, "%ld ", i));
+ EXECUTE_IF_SET_IN_BITMAP (db_p->livein_blocks, 0, i, bi)
+ {
+ fprintf (stderr, "%ld ", i);
+ }
fprintf (stderr, "}\n");
return 1;
@@ -1334,14 +1343,17 @@ invalidate_name_tags (bitmap vars_to_rename)
{
size_t i;
bool rename_name_tags_p;
+ bitmap_iterator bi;
rename_name_tags_p = false;
- EXECUTE_IF_SET_IN_BITMAP (vars_to_rename, 0, i,
+ EXECUTE_IF_SET_IN_BITMAP (vars_to_rename, 0, i, bi)
+ {
if (POINTER_TYPE_P (TREE_TYPE (referenced_var (i))))
{
rename_name_tags_p = true;
break;
- });
+ }
+ }
if (rename_name_tags_p)
for (i = 0; i < num_referenced_vars; i++)
@@ -1550,6 +1562,7 @@ rewrite_ssa_into_ssa (void)
sbitmap snames_to_rename;
tree name;
bitmap to_rename;
+ bitmap_iterator bi;
if (!any_marked_for_rewrite_p ())
return;
@@ -1598,8 +1611,10 @@ rewrite_ssa_into_ssa (void)
snames_to_rename = sbitmap_alloc (num_ssa_names);
sbitmap_zero (snames_to_rename);
- EXECUTE_IF_SET_IN_BITMAP (to_rename, 0, i,
- SET_BIT (snames_to_rename, i));
+ EXECUTE_IF_SET_IN_BITMAP (to_rename, 0, i, bi)
+ {
+ SET_BIT (snames_to_rename, i);
+ }
mark_def_sites_global_data.kills = sbitmap_alloc (num_ssa_names);
mark_def_sites_global_data.names_to_rename = snames_to_rename;
@@ -1657,7 +1672,10 @@ rewrite_ssa_into_ssa (void)
unmark_all_for_rewrite ();
- EXECUTE_IF_SET_IN_BITMAP (to_rename, 0, i, release_ssa_name (ssa_name (i)));
+ EXECUTE_IF_SET_IN_BITMAP (to_rename, 0, i, bi)
+ {
+ release_ssa_name (ssa_name (i));
+ }
sbitmap_free (snames_to_rename);