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/reload.h | |
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/reload.h')
-rw-r--r-- | gcc/reload.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/reload.h b/gcc/reload.h index 5606a4e..968d312 100644 --- a/gcc/reload.h +++ b/gcc/reload.h @@ -339,3 +339,6 @@ extern void setup_save_areas PROTO((void)); /* Find the places where hard regs are live across calls and save them. */ extern void save_call_clobbered_regs PROTO((void)); + +/* Replace (subreg (reg)) with the appropriate (reg) for any operands. */ +extern void cleanup_subreg_operands PROTO ((rtx)); |