This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Minor tree.def patch



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]