aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames E Wilson <wilson@specifixinc.com>2003-11-21 05:49:05 +0000
committerJim Wilson <wilson@gcc.gnu.org>2003-11-20 21:49:05 -0800
commitc862d589d28d39dc1fe947acbc5830748b980985 (patch)
treea3449e34f8a448469b27051045e21268362491ed
parent0eadf440e4cd770737eaaab6c3e662a7154fd581 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/reload1.c10
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);