From 4cb1433cadcd39f7ccaded711cd87601e869f1e8 Mon Sep 17 00:00:00 2001
From: Richard Henderson <rth@gcc.gnu.org>
Date: Mon, 29 May 2000 23:12:37 -0700
Subject: [PATCH] Document FUNCTION_OK_FOR_SIBCALL.

From-SVN: r34261
---
 gcc/tm.texi | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/gcc/tm.texi b/gcc/tm.texi
index 3b3f4b0283d..b5afde48e42 100644
--- a/gcc/tm.texi
+++ b/gcc/tm.texi
@@ -2171,6 +2171,7 @@ This describes the stack layout and calling conventions.
 * Function Entry::
 * Profiling::
 * Inlining::
+* Tail Calling::
 @end menu
 
 @node Frame Layout
@@ -3684,6 +3685,24 @@ takes one argument, a @samp{DECL} describing the function.  It should
 return non-zero if the function can be inlined, otherwise it should
 return 0.
 
+@node Tail Calling
+@subsection Permitting tail calls to functions
+@cindex tail calls
+@cindex sibling calls
+
+@table @code
+@findex FUNCTION_OK_FOR_SIBCALL
+@item FUNCTION_OK_FOR_SIBCALL (@var{decl})
+A C expression that evaluates to true if it is ok to perform a sibling
+call to @var{decl}.  
+
+It is not uncommon for limitations of calling conventions to prevent
+tail calls to functions outside the current unit of translation, or
+during PIC compilation.  Use this macro to enforce these restrictions,
+as the @code{sibcall} md pattern can not fail, or fall over to a 
+``normal'' call.
+@end table
+
 @node Varargs
 @section Implementing the Varargs Macros
 @cindex varargs implementation