diff options
author | Jeffrey A Law <law@cygnus.com> | 1998-10-27 23:19:31 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-10-27 16:19:31 -0700 |
commit | 0304f7877c4c65d129ea00cc2964a0998b9031ce (patch) | |
tree | c70a7a8b1e67a64ee37c4cbef242efc253b9a280 /gcc/flow.c | |
parent | bd09c530b225d9d838c63842e605aafe12a817e3 (diff) | |
download | gcc-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.c | 17 |
1 files changed, 0 insertions, 17 deletions
@@ -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 |