Document FUNCTION_OK_FOR_SIBCALL.

From-SVN: r34261
This commit is contained in:
Richard Henderson 2000-05-29 23:12:37 -07:00
parent 37dbf7aa9c
commit 4cb1433cad

View File

@ -2171,6 +2171,7 @@ This describes the stack layout and calling conventions.
* Function Entry:: * Function Entry::
* Profiling:: * Profiling::
* Inlining:: * Inlining::
* Tail Calling::
@end menu @end menu
@node Frame Layout @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 non-zero if the function can be inlined, otherwise it should
return 0. 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 @node Varargs
@section Implementing the Varargs Macros @section Implementing the Varargs Macros
@cindex varargs implementation @cindex varargs implementation