aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2004-05-13 16:46:19 -0600
committerJeff Law <law@gcc.gnu.org>2004-05-13 16:46:19 -0600
commit6c875a31e1d906f9821e558cd4da65fe39e2160d (patch)
treec4a9b4fc3ac9a69884b6447141f369dbdcc17011
parent0e7b565cbf161851bc77eb48d5618dff3434d497 (diff)
downloadgcc-6c875a31e1d906f9821e558cd4da65fe39e2160d.zip
gcc-6c875a31e1d906f9821e558cd4da65fe39e2160d.tar.gz
gcc-6c875a31e1d906f9821e558cd4da65fe39e2160d.tar.bz2
tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP rather than iterating through the blocks testing...
* tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP rather than iterating through the blocks testing each bit in livein to initialize the worklist. (mark_def_sites): Remove useless checks of KILLS for virtual operands. From-SVN: r81811
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-into-ssa.c15
2 files changed, 12 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d42c24b..ee5c4dd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -13,6 +13,12 @@
2004-05-13 Jeff Law <law@redhat.com>
+ * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
+ rather than iterating through the blocks testing each bit in
+ livein to initialize the worklist.
+ (mark_def_sites): Remove useless checks of KILLS for virtual
+ operands.
+
* tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
new parameters for the statement and variable worklist as well
as a bitmap of interesting SSA_NAMEs. Walk over the statement
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index 34c31a0..4e19142 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -136,16 +136,15 @@ static void
compute_global_livein (bitmap livein, bitmap def_blocks)
{
basic_block bb, *worklist, *tos;
+ int i;
tos = worklist
= (basic_block *) xmalloc (sizeof (basic_block) * (last_basic_block + 1));
- /* Initialize the worklist. */
- FOR_EACH_BB (bb)
+ EXECUTE_IF_SET_IN_BITMAP (livein, 0, i,
{
- if (bitmap_bit_p (livein, bb->index))
- *tos++ = bb;
- }
+ *tos++ = BASIC_BLOCK (i);
+ });
/* Iterate until the worklist is empty. */
while (tos != worklist)
@@ -244,8 +243,7 @@ mark_def_sites (struct dom_walk_data *walk_data,
{
tree *use_p = VUSE_OP_PTR (vuses, i);
- if (prepare_operand_for_rename (use_p, &uid)
- && !TEST_BIT (kills, uid))
+ if (prepare_operand_for_rename (use_p, &uid))
set_livein_block (*use_p, bb);
}
@@ -264,8 +262,7 @@ mark_def_sites (struct dom_walk_data *walk_data,
{
VDEF_RESULT (vdefs, i) = VDEF_OP (vdefs, i);
- if (!TEST_BIT (kills, uid))
- set_livein_block (VDEF_OP (vdefs, i), bb);
+ set_livein_block (VDEF_OP (vdefs, i), bb);
set_def_block (VDEF_RESULT (vdefs, i), bb);
}
}