diff options
author | James E Wilson <wilson@specifixinc.com> | 2003-11-21 05:49:05 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 2003-11-20 21:49:05 -0800 |
commit | c862d589d28d39dc1fe947acbc5830748b980985 (patch) | |
tree | a3449e34f8a448469b27051045e21268362491ed | |
parent | 0eadf440e4cd770737eaaab6c3e662a7154fd581 (diff) | |
download | gcc-c862d589d28d39dc1fe947acbc5830748b980985.zip gcc-c862d589d28d39dc1fe947acbc5830748b980985.tar.gz gcc-c862d589d28d39dc1fe947acbc5830748b980985.tar.bz2 |
re PR c/13133 (Extraneous register-saves triggered by setjmp())
PR c/13133
* reload1.c (reload): Delete special handling for setjmp.
From-SVN: r73791
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/reload1.c | 10 |
2 files changed, 6 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1ee4f56..5a2ce04 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-11-20 James E Wilson <wilson@specifixinc.com> + + PR c/13133 + * reload1.c (reload): Delete special handling for setjmp. + 2003-11-21 Andreas Tobler <a.tobler@schweiz.ch> * mklibgcc.in: Evaluate shlib_slibdir_qual during link diff --git a/gcc/reload1.c b/gcc/reload1.c index 717489f..22c0342 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -698,9 +698,7 @@ reload (rtx first, int global) /* Look for REG_EQUIV notes; record what each pseudo is equivalent to. Also find all paradoxical subregs and find largest such for each pseudo. On machines with small register classes, record hard registers that - are used for user variables. These can never be used for spills. - Also look for a "constant" REG_SETJMP. This means that all - caller-saved registers must be marked live. */ + are used for user variables. These can never be used for spills. */ num_eliminable_invariants = 0; for (insn = first; insn; insn = NEXT_INSN (insn)) @@ -714,12 +712,6 @@ reload (rtx first, int global) && GET_MODE (insn) != VOIDmode) PUT_MODE (insn, VOIDmode); - if (GET_CODE (insn) == CALL_INSN - && find_reg_note (insn, REG_SETJMP, NULL)) - for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) - if (! call_used_regs[i]) - regs_ever_live[i] = 1; - if (set != 0 && GET_CODE (SET_DEST (set)) == REG) { rtx note = find_reg_note (insn, REG_EQUIV, NULL_RTX); |