aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1999-01-24 07:13:55 +0000
committerJeff Law <law@gcc.gnu.org>1999-01-24 00:13:55 -0700
commit09554da93e20b43c842a342c82062c18606252f1 (patch)
tree8f8542a01950f6de95417cf8452e551edaa154ea
parent50c3308739f502960f3c39ce00fcaac47cd6d391 (diff)
downloadgcc-09554da93e20b43c842a342c82062c18606252f1.zip
gcc-09554da93e20b43c842a342c82062c18606252f1.tar.gz
gcc-09554da93e20b43c842a342c82062c18606252f1.tar.bz2
rtl.def (CALL_PLACEHOLDER): New rtx code.
� * rtl.def (CALL_PLACEHOLDER): New rtx code. From-SVN: r24843
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/rtl.def18
2 files changed, 22 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 776dcdb..f06b6c2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Sun Jan 24 08:07:59 1999 Jeffrey A Law (law@cygnus.com)
+
+ * rtl.def (CALL_PLACEHOLDER): New rtx code.
+
Sun Jan 24 21:24:43 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.c (c4x_emit_move_sequence, c4x_encode_section_info):
diff --git a/gcc/rtl.def b/gcc/rtl.def
index 970a937..7b8c845 100644
--- a/gcc/rtl.def
+++ b/gcc/rtl.def
@@ -855,6 +855,24 @@ DEF_RTL_EXPR(RANGE_LIVE, "range_live", "bi", 'x')
eliminated by the first CSE pass. */
DEF_RTL_EXPR(CONSTANT_P_RTX, "constant_p_rtx", "e", 'x')
+/* A placeholder for a CALL_INSN which may be turned into a normal call,
+ a sibling (tail) call or tail recursion.
+
+ Immediately after RTL generation, this placeholder will be replaced
+ by the insns to perform the call, sibcall or tail recursion.
+
+ This RTX has 4 operands. The first three are lists of instructions to
+ perform the call as a normal call, sibling call and tail recursion
+ respectively. The latter two lists may be NULL, the first may never
+ be NULL.
+
+ The last operand is the tail recursion CODE_LABEL, which may be NULL if no
+ potential tail recursive calls were found.
+
+ The tail recursion label is needed so that we can clear LABEL_PRESERVE_P
+ after we select a call method. */
+DEF_RTL_EXPR(CALL_PLACEHOLDER, "call_placeholder", "uuuu", 'x')
+
/*
Local variables:
mode:c