diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1995-06-03 22:08:38 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1995-06-03 22:08:38 -0400 |
commit | 7b57d1d3179b303355eee52b733acc7762a66e67 (patch) | |
tree | f58961be3e5da7380b1b39b402e111e7cb5252c2 /gcc | |
parent | 107b5ee699ecf5105613e31501040a7b78187774 (diff) | |
download | gcc-7b57d1d3179b303355eee52b733acc7762a66e67.zip gcc-7b57d1d3179b303355eee52b733acc7762a66e67.tar.gz gcc-7b57d1d3179b303355eee52b733acc7762a66e67.tar.bz2 |
(attach_deaths): Don't add a REG_DEAD note if a REG_UNUSED note is
already present.
From-SVN: r9871
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/sched.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/sched.c b/gcc/sched.c index 9733228..ccd8b56 100644 --- a/gcc/sched.c +++ b/gcc/sched.c @@ -2864,7 +2864,12 @@ attach_deaths (x, insn, set_p) #endif && regno != STACK_POINTER_REGNUM) { - if (! all_needed && ! dead_or_set_p (insn, x)) + /* ??? It is perhaps a dead_or_set_p bug that it does + not check for REG_UNUSED notes itself. This is necessary + for the case where the SET_DEST is a subreg of regno, as + dead_or_set_p handles subregs specially. */ + if (! all_needed && ! dead_or_set_p (insn, x) + && ! find_regno_note (insn, REG_UNUSED, regno)) { /* Check for the case where the register dying partially overlaps the register set by this insn. */ |