diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-01-24 18:58:32 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-01-24 18:58:32 +0000 |
commit | c95cfc31b915c73a4aade079bc7c18c4f0b56a87 (patch) | |
tree | 37a4177603dd6348baef3608f1252a05e0b49c71 /gcc/reg-stack.c | |
parent | 8c5dc77f3f4e9ed7b0a770874e739297047b6d6b (diff) | |
download | gcc-c95cfc31b915c73a4aade079bc7c18c4f0b56a87.tar.gz |
* reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
dead registers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31588 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reg-stack.c')
-rw-r--r-- | gcc/reg-stack.c | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c index 45ef11c5ce3..2edd57906cd 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: |