aboutsummaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1998-10-27 23:19:31 +0000
committerJeff Law <law@gcc.gnu.org>1998-10-27 16:19:31 -0700
commit0304f7877c4c65d129ea00cc2964a0998b9031ce (patch)
treec70a7a8b1e67a64ee37c4cbef242efc253b9a280 /gcc/flow.c
parentbd09c530b225d9d838c63842e605aafe12a817e3 (diff)
downloadgcc-0304f7877c4c65d129ea00cc2964a0998b9031ce.zip
gcc-0304f7877c4c65d129ea00cc2964a0998b9031ce.tar.gz
gcc-0304f7877c4c65d129ea00cc2964a0998b9031ce.tar.bz2
final.c (cleanup_subreg_operands): New function.
* final.c (cleanup_subreg_operands): New function. (final_scan_insn): Use it. (alter_subreg): Clear the "used" field when we turn a SUBREG into a REG. * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG operands when reload has finished. * reload.h (cleanup_subreg_operands): Declare.. * flow.c (life_analysis_1): No longer delete CLOBBER insns after reload. Handled in reload itself. Should fix sh, sparc and probably other problems with post-reload life pass and scheduling interactions. From-SVN: r23377
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c17
1 files changed, 0 insertions, 17 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 3fecc85..51af041 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -1358,23 +1358,6 @@ 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