aboutsummaryrefslogtreecommitdiff
path: root/gcc/df-problems.c
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@codesourcery.com>2010-04-26 21:17:17 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2010-04-26 21:17:17 +0000
commit823ff7b434a663ce1d060987027c7dee360ab9d2 (patch)
tree1c9584cc811e8ac51bda3af95fc87e52d368d92a /gcc/df-problems.c
parent1637c2e1ba572a859a9e99dd2ff16ddf88d8b3f7 (diff)
downloadgcc-823ff7b434a663ce1d060987027c7dee360ab9d2.zip
gcc-823ff7b434a663ce1d060987027c7dee360ab9d2.tar.gz
gcc-823ff7b434a663ce1d060987027c7dee360ab9d2.tar.bz2
df-problems.c (df_simulate_initialize_forwards): Set, don't clear, bits for artificial defs at the top of the block.
* df-problems.c (df_simulate_initialize_forwards): Set, don't clear, bits for artificial defs at the top of the block. * fwprop.c (single_def_use_enter_block): Don't call it. From-SVN: r158750
Diffstat (limited to 'gcc/df-problems.c')
-rw-r--r--gcc/df-problems.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/gcc/df-problems.c b/gcc/df-problems.c
index fb89909..dbb469e 100644
--- a/gcc/df-problems.c
+++ b/gcc/df-problems.c
@@ -3913,13 +3913,9 @@ df_simulate_finalize_backwards (basic_block bb, bitmap live)
the block, starting with the first one.
----------------------------------------------------------------------------*/
-/* Apply the artificial uses and defs at the top of BB in a forwards
- direction. ??? This is wrong; defs mark the point where a pseudo
- becomes live when scanning forwards (unless a def is unused). Since
- there are no REG_UNUSED notes for artificial defs, passes that
- require artificial defs probably should not call this function
- unless (as is the case for fwprop) they are correct when liveness
- bitmaps are *under*estimated. */
+/* Initialize the LIVE bitmap, which should be copied from DF_LIVE_IN or
+ DF_LR_IN for basic block BB, for forward scanning by marking artificial
+ defs live. */
void
df_simulate_initialize_forwards (basic_block bb, bitmap live)
@@ -3931,7 +3927,7 @@ df_simulate_initialize_forwards (basic_block bb, bitmap live)
{
df_ref def = *def_rec;
if (DF_REF_FLAGS (def) & DF_REF_AT_TOP)
- bitmap_clear_bit (live, DF_REF_REGNO (def));
+ bitmap_set_bit (live, DF_REF_REGNO (def));
}
}