Commit 4cb1433c by Richard Henderson

Document FUNCTION_OK_FOR_SIBCALL.

From-SVN: r34261
parent 37dbf7aa
...@@ -2171,6 +2171,7 @@ This describes the stack layout and calling conventions. ...@@ -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 ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment