diff options
author | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-10-29 08:41:10 +0000 |
---|---|---|
committer | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-10-29 08:41:10 +0000 |
commit | 604efc0122c75e06f23ab788c2306c8f7a32e2c6 (patch) | |
tree | 5ae5a28c250887e5c6bbcd142331bef3dd27af7d /gcc/flow.c | |
parent | 2e3657310736017e2ae3fefdc982b7d5e52ede58 (diff) | |
download | gcc-604efc0122c75e06f23ab788c2306c8f7a32e2c6.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89827 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/flow.c')
-rw-r--r-- | gcc/flow.c | 38 |
1 files changed, 16 insertions, 22 deletions
diff --git a/gcc/flow.c b/gcc/flow.c index 4ea30a79d3d..6e599c81524 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))); |