aboutsummaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2004-10-29 08:41:10 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2004-10-29 08:41:10 +0000
commiteb59b8de04973d3d08bf8df731bbd3da38af918c (patch)
tree5ae5a28c250887e5c6bbcd142331bef3dd27af7d /gcc/flow.c
parentec7e5618bc8b9d720803a3857eb787983b089318 (diff)
downloadgcc-eb59b8de04973d3d08bf8df731bbd3da38af918c.zip
gcc-eb59b8de04973d3d08bf8df731bbd3da38af918c.tar.gz
gcc-eb59b8de04973d3d08bf8df731bbd3da38af918c.tar.bz2
bitmap.h (bitmap_empty_p): New.
* bitmap.h (bitmap_empty_p): New. (bitmap_and, bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_ior_compl, bitmap_xor, bitmap_xor_into): New bitmap operation macros. (bitmap_ior_and_compl): Rename to ... (bitmap_ior_and_compl_into): ... here. * bitmap.c (bitmap_equal_p): Use bitmap_xor. (bitmap_ior_and_compl): Rename to ... (bitmap_ior_and_compl_into): ... here. Adjust. Return changed flag. (bitmap_union_of_diff): Use renamed bitmap functions. * basic-block.h (AND_REG_SET, AND_COMPL_REG_SET, IOR_REG_SET, XOR_REG_SET, IOR_AND_COMPL_REG_SET): Likewise. * cfgrtl.c (safe_insert_insn_on_edge): Likewise. * df.c (df_bb_rd_local_compute) * flow.c (calculate_global_regs_live, init_propagate_block_info): Likewise. * ifcvt.c (find_if_case_1, find_if_case_2, dead_or_predicable): Likewise. * ra-build.c (union_web_part_roots, livethrough_conflicts_bb, reset_conflicts, conflicts_between_webs): Likewise. * ra-rewrite.c (reloads_to_loads, rewrite_program2, detect_web_parts_to_rebuild): Likewise. * sched-ebb.c (compute_jump_reg_dependencies): Likewise. * tree-int-ssa.c (insert_phi_nodes_for, rewrite_into_ssa): Likewise. * tree-sra.c (decide_instantiations): Likewise. * tree-ssa-alias.c (create_name_tags, merge_pointed_to_info): Likewise. * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise. * tree-ssa-loop-im.c (move_computations): Likewise. * tree-ssa-operands.c (get_call_expr_operands): Likewise. * tree-ssa-pre.c (fini_pre): Likewise. * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise. * tree-ssanames.c (any_marked_for_rewrite_p): Likewise. * tree-vectorizer.c (vectorize_loops): Likewise. From-SVN: r89827
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c38
1 files changed, 16 insertions, 22 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 4ea30a7..6e599c8 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -1114,11 +1114,9 @@ calculate_global_regs_live (sbitmap blocks_in, sbitmap blocks_out, int flags)
/* ??? Abnormal call edges ignored for the moment, as this gets
confused by sibling call edges, which crashes reg-stack. */
if (e->flags & EDGE_EH)
- {
- bitmap_operation (tmp, sb->global_live_at_start,
- invalidated_by_call, BITMAP_AND_COMPL);
- IOR_REG_SET (new_live_at_end, tmp);
- }
+ bitmap_ior_and_compl_into (new_live_at_end,
+ sb->global_live_at_start,
+ invalidated_by_call);
else
IOR_REG_SET (new_live_at_end, sb->global_live_at_start);
@@ -1188,8 +1186,8 @@ calculate_global_regs_live (sbitmap blocks_in, sbitmap blocks_out, int flags)
precalculated local_live, however with PROP_SCAN_DEAD_CODE
local_live is really dependent on live_at_end. */
CLEAR_REG_SET (tmp);
- rescan = bitmap_operation (tmp, bb->global_live_at_end,
- new_live_at_end, BITMAP_AND_COMPL);
+ rescan = bitmap_and_compl (tmp, bb->global_live_at_end,
+ new_live_at_end);
if (! rescan)
{
@@ -1201,8 +1199,8 @@ calculate_global_regs_live (sbitmap blocks_in, sbitmap blocks_out, int flags)
block. We can miss changes in those sets if we only
compare the new live_at_end against the previous one. */
CLEAR_REG_SET (tmp);
- rescan = bitmap_operation (tmp, new_live_at_end,
- bb->cond_local_set, BITMAP_AND);
+ rescan = bitmap_and (tmp, new_live_at_end,
+ bb->cond_local_set);
}
if (! rescan)
@@ -1210,16 +1208,15 @@ calculate_global_regs_live (sbitmap blocks_in, sbitmap blocks_out, int flags)
/* Find the set of changed bits. Take this opportunity
to notice that this set is empty and early out. */
CLEAR_REG_SET (tmp);
- changed = bitmap_operation (tmp, bb->global_live_at_end,
- new_live_at_end, BITMAP_XOR);
+ changed = bitmap_xor (tmp, bb->global_live_at_end,
+ new_live_at_end);
if (! changed)
continue;
/* If any of the changed bits overlap with local_set,
we'll have to rescan the block. Detect overlap by
the AND with ~local_set turning off bits. */
- rescan = bitmap_operation (tmp, tmp, bb->local_set,
- BITMAP_AND_COMPL);
+ rescan = bitmap_and_compl_into (tmp, bb->local_set);
}
}
@@ -1232,14 +1229,11 @@ calculate_global_regs_live (sbitmap blocks_in, sbitmap blocks_out, int flags)
{
/* Add to live_at_start the set of all registers in
new_live_at_end that aren't in the old live_at_end. */
-
- bitmap_operation (tmp, new_live_at_end, bb->global_live_at_end,
- BITMAP_AND_COMPL);
+
+ changed = bitmap_ior_and_compl_into (bb->global_live_at_start,
+ new_live_at_end,
+ bb->global_live_at_end);
COPY_REG_SET (bb->global_live_at_end, new_live_at_end);
-
- changed = bitmap_operation (bb->global_live_at_start,
- bb->global_live_at_start,
- tmp, BITMAP_IOR);
if (! changed)
continue;
}
@@ -1860,8 +1854,8 @@ init_propagate_block_info (basic_block bb, regset live, regset local_set,
}
/* Compute which register lead different lives in the successors. */
- if (bitmap_operation (diff, bb_true->global_live_at_start,
- bb_false->global_live_at_start, BITMAP_XOR))
+ if (bitmap_xor (diff, bb_true->global_live_at_start,
+ bb_false->global_live_at_start))
{
/* Extract the condition from the branch. */
rtx set_src = SET_SRC (pc_set (BB_END (bb)));