aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@cygnus.co.uk>1998-03-05 22:05:51 +0000
committerJeff Law <law@gcc.gnu.org>1998-03-05 15:05:51 -0700
commitac9b3c970ec8bcc697d641e44e194ca99e65bf47 (patch)
tree00eaa7957d065f847be209659ab8054a2b40303b /gcc
parent6e92f4b6a2371ce4bb05f7021653f962d73605aa (diff)
downloadgcc-ac9b3c970ec8bcc697d641e44e194ca99e65bf47.zip
gcc-ac9b3c970ec8bcc697d641e44e194ca99e65bf47.tar.gz
gcc-ac9b3c970ec8bcc697d641e44e194ca99e65bf47.tar.bz2
jump.c (jump_optimize): Call mark_jump_label also for deleted insns.
* jump.c (jump_optimize): Call mark_jump_label also for deleted insns. (mark_jump_label): Don't increment ref counts for deleted insns. From-SVN: r18420
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/jump.c19
2 files changed, 16 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8b23c8b..a9555d7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+Thu Mar 5 23:06:26 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * jump.c (jump_optimize): Call mark_jump_label also for deleted
+ insns.
+ (mark_jump_label): Don't increment ref counts for deleted insns.
+
Thu Mar 5 09:55:15 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* mips/iris6.h (TARGET_DEFAULT): Parenthesize macro definition.
diff --git a/gcc/jump.c b/gcc/jump.c
index c5710f2..4b7a5f4 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -212,11 +212,10 @@ jump_optimize (f, cross_jump, noop_moves, after_regscan)
also make a chain of all returns. */
for (insn = f; insn; insn = NEXT_INSN (insn))
- if (GET_RTX_CLASS (GET_CODE (insn)) == 'i'
- && ! INSN_DELETED_P (insn))
+ if (GET_RTX_CLASS (GET_CODE (insn)) == 'i')
{
mark_jump_label (PATTERN (insn), insn, cross_jump);
- if (GET_CODE (insn) == JUMP_INSN)
+ if (! INSN_DELETED_P (insn) && GET_CODE (insn) == JUMP_INSN)
{
if (JUMP_LABEL (insn) != 0 && simplejump_p (insn))
{
@@ -3380,7 +3379,8 @@ mark_jump_label (x, insn, cross_jump)
}
XEXP (x, 0) = label;
- ++LABEL_NUSES (label);
+ if (! insn || ! INSN_DELETED_P (insn))
+ ++LABEL_NUSES (label);
if (insn)
{
@@ -3417,12 +3417,13 @@ mark_jump_label (x, insn, cross_jump)
ADDR_DIFF_VEC. Don't set the JUMP_LABEL of a vector. */
case ADDR_VEC:
case ADDR_DIFF_VEC:
- {
- int eltnum = code == ADDR_DIFF_VEC ? 1 : 0;
+ if (! INSN_DELETED_P (insn))
+ {
+ int eltnum = code == ADDR_DIFF_VEC ? 1 : 0;
- for (i = 0; i < XVECLEN (x, eltnum); i++)
- mark_jump_label (XVECEXP (x, eltnum, i), NULL_RTX, cross_jump);
- }
+ for (i = 0; i < XVECLEN (x, eltnum); i++)
+ mark_jump_label (XVECEXP (x, eltnum, i), NULL_RTX, cross_jump);
+ }
return;
default: