From c95cfc31b915c73a4aade079bc7c18c4f0b56a87 Mon Sep 17 00:00:00 2001 From: hubicka Date: Mon, 24 Jan 2000 18:58:32 +0000 Subject: [PATCH] * 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 --- gcc/ChangeLog | 5 +++++ 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 + + * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of + dead registers. + Mon Jan 24 17:37:31 MET 2000 Jan Hubicka * 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: -- 2.7.4