aboutsummaryrefslogtreecommitdiff
path: root/gcc/df-problems.c
diff options
context:
space:
mode:
authorKenneth Zadeck <zadeck@naturalbridge.com>2007-06-21 16:24:59 +0000
committerKenneth Zadeck <zadeck@gcc.gnu.org>2007-06-21 16:24:59 +0000
commite44e043cb31d2cbac67dde6e529fd0fd804f384c (patch)
tree13d8769b46b55aea4710e6ce9c5920176d2586c3 /gcc/df-problems.c
parent4228997795917ab648bc7b58b9497e877ae8b92a (diff)
downloadgcc-e44e043cb31d2cbac67dde6e529fd0fd804f384c.zip
gcc-e44e043cb31d2cbac67dde6e529fd0fd804f384c.tar.gz
gcc-e44e043cb31d2cbac67dde6e529fd0fd804f384c.tar.bz2
df-problems.c (df_note_bb_compute): Made computation of live info consistent with df_lr.
2007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com> * df-problems.c (df_note_bb_compute): Made computation of live info consistent with df_lr. From-SVN: r125924
Diffstat (limited to 'gcc/df-problems.c')
-rw-r--r--gcc/df-problems.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/gcc/df-problems.c b/gcc/df-problems.c
index 101b46f..6097908 100644
--- a/gcc/df-problems.c
+++ b/gcc/df-problems.c
@@ -46,6 +46,9 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "dce.h"
#include "vecprim.h"
+/* Note that turning REG_DEAD_DEBUGGING on will cause
+ gcc.c-torture/unsorted/dump-noaddr.c to fail because it prints
+ addresses in the dumps. */
#if 0
#define REG_DEAD_DEBUGGING
#endif
@@ -3960,8 +3963,8 @@ df_note_bb_compute (unsigned int bb_index,
df_print_regset (dump_file, live);
}
#endif
- /* We only care about real sets for calls. Clobbers only
- may clobbers cannot be depended on. */
+ /* We only care about real sets for calls. Clobbers cannot
+ be depended on to really die. */
mws_rec = DF_INSN_UID_MWS (uid);
while (*mws_rec)
{
@@ -3985,6 +3988,12 @@ df_note_bb_compute (unsigned int bb_index,
= df_create_unused_note (insn, old_unused_notes,
def, live, do_not_gen,
artificial_uses);
+
+ /* However a may or must clobber still needs to kill the
+ reg so that REG_DEAD notes are later placed
+ appropriately. */
+ else
+ bitmap_clear_bit (live, DF_REF_REGNO (def));
}
}
else