This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Minor tree.def patch
- To: egcs-patches at cygnus dot com
- Subject: Minor tree.def patch
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Sun, 24 Jan 1999 08:10:28 -0700
- Reply-To: law at cygnus dot com
This doesn't do anything useful yet. :-) But it's needed for come code
I'll post shortly which improves tail recursion optimizations.
* rtl.def (CALL_PLACEHOLDER): New rtx code.
Index: rtl.def
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/rtl.def,v
retrieving revision 1.16
diff -c -3 -p -r1.16 rtl.def
*** rtl.def 1999/01/21 02:21:06 1.16
--- rtl.def 1999/01/24 15:11:11
*************** DEF_RTL_EXPR(RANGE_LIVE, "range_live", "
*** 855,860 ****
--- 855,878 ----
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 operand last 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