diff options
author | Jan Hubicka <jh@suse.cz> | 2000-01-24 19:58:32 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2000-01-24 18:58:32 +0000 |
commit | eedf2f550c5ed120f8ca22d0c4a4836bcbe82727 (patch) | |
tree | 37a4177603dd6348baef3608f1252a05e0b49c71 /gcc | |
parent | 564d80f490595b536426ffbb5b15a787f4561e8e (diff) | |
download | gcc-eedf2f550c5ed120f8ca22d0c4a4836bcbe82727.zip gcc-eedf2f550c5ed120f8ca22d0c4a4836bcbe82727.tar.gz gcc-eedf2f550c5ed120f8ca22d0c4a4836bcbe82727.tar.bz2 |
reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of dead registers.
* reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
dead registers.
From-SVN: r31588
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/reg-stack.c | 18 |
2 files changed, 8 insertions, 15 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5b4d3ea..a04ed4f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Mon Jan 24 19:49:47 MET 2000 Jan Hubicka <jh@suse.cz> + + * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of + dead registers. + Mon Jan 24 17:37:31 MET 2000 Jan Hubicka <jh@suse.cz> * i386.h (FIRST_PSEUDO_REGISTER): Set to 21. diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c index 45ef11c..2edd579 100644 --- a/gcc/reg-stack.c +++ b/gcc/reg-stack.c @@ -1383,24 +1383,12 @@ subst_stack_regs_pat (insn, regstack, pat) if (STACK_REG_P (*src) && find_regno_note (insn, REG_DEAD, REGNO (*src))) { - /* In stupid allocation the USE might be used to extend lifetime - of variable to given scope. This may end up as USE of dead - register. */ - if (optimize || get_hard_regnum (regstack, *src) != -1) - emit_pop_insn (insn, regstack, *src, EMIT_AFTER); + emit_pop_insn (insn, regstack, *src, EMIT_AFTER); return; } + /* ??? Uninitialized USE should not happen. */ else if (get_hard_regnum (regstack, *src) == -1) - { - if (optimize) - abort(); - if (GET_CODE (PATTERN (insn)) != USE) - abort(); - PATTERN (insn) = gen_rtx_SET (GET_MODE (*src), *src, - CONST0_RTX (GET_MODE (*src))); - subst_stack_regs_pat (insn, regstack, PATTERN (insn)); - return; - } + abort(); break; case CLOBBER: |