aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>2001-04-18 03:39:19 +0000
committerJeff Law <law@gcc.gnu.org>2001-04-17 21:39:19 -0600
commitb9c81bcb53beda99725d20443095a0b84220e0f4 (patch)
tree4b7f52c935d74c0c9289157d32b74193a691ed97 /gcc
parent2f4e671dfa34c623211bba2214b54cf2d663af11 (diff)
downloadgcc-b9c81bcb53beda99725d20443095a0b84220e0f4.zip
gcc-b9c81bcb53beda99725d20443095a0b84220e0f4.tar.gz
gcc-b9c81bcb53beda99725d20443095a0b84220e0f4.tar.bz2
jump.c (mark_all_labels): Canonicalize the tail recursion label attached to CALL_PLACEHOLDER insns.
* jump.c (mark_all_labels): Canonicalize the tail recursion label attached to CALL_PLACEHOLDER insns. From-SVN: r41400
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/jump.c11
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bf154e8..577a11d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Tue Apr 17 21:41:11 2001 Jeffrey A Law (law@cygnus.com)
+
+ * jump.c (mark_all_labels): Canonicalize the tail recursion
+ label attached to CALL_PLACEHOLDER insns.
+
2001-04-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* output.h (dump_flow_info, free_basic_block_vars,
diff --git a/gcc/jump.c b/gcc/jump.c
index 7799722..2426921 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -843,6 +843,17 @@ mark_all_labels (f, cross_jump)
mark_all_labels (XEXP (PATTERN (insn), 0), cross_jump);
mark_all_labels (XEXP (PATTERN (insn), 1), cross_jump);
mark_all_labels (XEXP (PATTERN (insn), 2), cross_jump);
+
+ /* Canonicalize the tail recursion label attached to the
+ CALL_PLACEHOLDER insn. */
+ if (XEXP (PATTERN (insn), 3))
+ {
+ rtx label_ref = gen_rtx_LABEL_REF (VOIDmode,
+ XEXP (PATTERN (insn), 3));
+ mark_jump_label (label_ref, insn, cross_jump, 0);
+ XEXP (PATTERN (insn), 3) = XEXP (label_ref, 0);
+ }
+
continue;
}