From eedf2f550c5ed120f8ca22d0c4a4836bcbe82727 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Mon, 24 Jan 2000 19:58:32 +0100 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/reg-stack.c | 18 +++--------------- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5b4d3ea42d9..a04ed4fc4ba 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 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: