diff options
author | Jeffrey A Law <law@cygnus.com> | 1998-10-23 14:33:35 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-10-23 08:33:35 -0600 |
commit | 7b16da78b147daa91116668c6e03b111685f8c1f (patch) | |
tree | 41672069b9e7180bd3d4ce8425e2b543b284569c | |
parent | ca3bf2b5db619ff2f19ac253c05db30c9b84bf56 (diff) | |
download | gcc-7b16da78b147daa91116668c6e03b111685f8c1f.zip gcc-7b16da78b147daa91116668c6e03b111685f8c1f.tar.gz gcc-7b16da78b147daa91116668c6e03b111685f8c1f.tar.bz2 |
* flow.c (life_analysis_1): Delete CLOBBER insns after reload.
From-SVN: r23257
-rw-r--r-- | gcc/ChangeLog | 2 | ||||
-rw-r--r-- | gcc/flow.c | 17 |
2 files changed, 19 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eba3f14..7c0212d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -26,6 +26,8 @@ Fri Oct 23 15:34:14 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> Fri Oct 23 13:12:35 1998 Jeffrey A Law (law@cygnus.com) + * flow.c (life_analysis_1): Delete CLOBBER insns after reload. + * mn10200.md (truncated shift): Accept constant inputs too. Fri Oct 23 04:06:57 1998 Richard Earnshaw (rearnsha@arm.com) @@ -1358,6 +1358,23 @@ life_analysis_1 (f, nregs) if (reload_completed) bcopy (regs_ever_live, save_regs_ever_live, (sizeof (regs_ever_live))); + /* Also remove all CLOBBER insns after reload. They can cause us to think + a value is dead when it really is not dead. */ + if (reload_completed) + { + rtx insn; + + for (insn = f; insn; insn = NEXT_INSN (insn)) + { + if (GET_CODE (insn) == INSN + && GET_CODE (PATTERN (insn)) == CLOBBER) + { + PUT_CODE (insn, NOTE); + NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED; + NOTE_SOURCE_FILE (insn) = 0; + } + } + } bzero (regs_ever_live, sizeof regs_ever_live); /* Allocate and zero out many data structures |