public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Sandra Loosemore <sloosemore@baylibre.com>
To: Andi Kleen <ak@linux.intel.com>, gcc-patches@gnu.org
Subject: Re: [PATCH v4 5/5] Add documentation for musttail attribute
Date: Sat, 3 Feb 2024 21:35:43 -0700	[thread overview]
Message-ID: <f0dbac1a-937f-4990-8139-198ef4a1ce2e@baylibre.com> (raw)
In-Reply-To: <20240202091322.1898280-6-ak@linux.intel.com>

On 2/2/24 02:09, Andi Kleen wrote:
> gcc/ChangeLog:
> 
> 	* doc/extend.texi: Document [[musttail]]
> ---
>   gcc/doc/extend.texi | 16 ++++++++++++++++
>   1 file changed, 16 insertions(+)
> 
> diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
> index 142e41ab8fbf..866f6c4a9fed 100644
> --- a/gcc/doc/extend.texi
> +++ b/gcc/doc/extend.texi
> @@ -9875,6 +9875,22 @@ foo (int x, int y)
>   @code{y} is not actually incremented and the compiler can but does not
>   have to optimize it to just @code{return 42 + 42;}.
>   
> +@cindex @code{musttail} statement attribute
> +@item musttail
> +
> +The @code{gnu::musttail} or @code{clang::musttail} attribute
> +can be applied to a return statement that returns the value
> +of a call to indicate that the call must be a tail call
> +that does not allocate extra stack space.

It took me about 3 attempts to parse this.  :-S  I think this might be a 
little better:

...can be applied to a @code{return} statement with a return-value 
expression that is a function call.  It asserts that the call must be a 
tail call that does not allocate extra stack space.

> +
> +@smallexample
> +[[gnu::musttail]] return foo();
> +@end smallexample
> +
> +If the compiler cannot generate a tail call it will generate

s/will generate/generates/

I'm a big fan of writing in the present tense.  ;-)

> +an error. Tail calls generally require enabling optimization.
> +On some targets they may not be supported.
> +
>   @end table
>   
>   @node Attribute Syntax

In addition to these changes, at the beginning of this section we have

@node Statement Attributes
@section Statement Attributes
@cindex Statement Attributes

GCC allows attributes to be set on null statements.  @xref{Attribute 
Syntax},
for details of the exact syntax for using attributes. [...]

Well, we now have an attribute that goes on a non-null statement, so we 
have to fix this.  The documentation for the other statement attributes 
is already explicit that they go on null statements so those already 
would be OK if we just removed the "null" restriction here.  OTOH, the 
Attribute Syntax section, in discussing GCC's traditional attribute 
syntax, says:

@subsubheading Statement Attributes
In GNU C, an attribute specifier list may appear as part of a null
statement.  The attribute goes before the semicolon.

If "musttail" is only supported in the standard attribute syntax, its 
new entry in the Statement Attributes node must say that, and the blurb 
at the top of the node quoted above must say something to the effect 
that the traditional syntax only allows statement attributes on null 
statements and attributes on non-null statements are only permitted in 
the new standard attribute form.

-Sandra


  reply	other threads:[~2024-02-04  4:35 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-02  9:09 Updated musttail patches Andi Kleen
2024-02-02  9:09 ` [PATCH v4 1/5] Improve must tail in RTL backend Andi Kleen
2024-02-02  9:09 ` [PATCH v4 2/5] C++: Support clang compatible [[musttail]] (PR83324) Andi Kleen
2024-02-02  9:09 ` [PATCH v4 3/5] C: Implement musttail attribute for returns Andi Kleen
2024-02-02  9:09 ` [PATCH v4 4/5] Add tests for C/C++ musttail attributes Andi Kleen
2024-02-02 11:01   ` Prathamesh Kulkarni
2024-02-02 14:50     ` Andi Kleen
2024-02-02  9:09 ` [PATCH v4 5/5] Add documentation for musttail attribute Andi Kleen
2024-02-04  4:35   ` Sandra Loosemore [this message]
2024-02-05 13:32     ` Andi Kleen
2024-02-02 13:18 ` Updated musttail patches Joseph Myers
2024-02-02 14:49   ` Andi Kleen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f0dbac1a-937f-4990-8139-198ef4a1ce2e@baylibre.com \
    --to=sloosemore@baylibre.com \
    --cc=ak@linux.intel.com \
    --cc=gcc-patches@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).