gcc: docs: Fix documentation of two hooks

The `function_attribute_inlinable_p` hook documentation described it
returning the value if it is OK to inline the provided fndecl into "the
current function".  AFAICS This hook is only called when
`current_function_decl` is the same as the `fndecl` argument that the
hook is given, hence asking whether `fndecl` can be inlined into "the
current function" doesn't seem relevant.  Moreover from what I see no
existing implementation of `function_attribute_inlinable_p` uses "the
current function" in any way.
Update the documentation to match this understanding.

The `unspec_may_trap_p` documentation mentioned applying to either
`unspec` or `unspec_volatile`.  AFAICS this hook is only used for
`unspec` codes since c84a808e49, so I removed the mention of
`unspec_volatile`.

gcc/ChangeLog:

	* doc/tm.texi: Regenerated.
	* target.def (function_attribute_inlinable_p,
	unspec_may_trap_p): Update documentation.
This commit is contained in:
Matthew Malcomson 2024-07-02 11:11:11 +01:00
parent 9bd51351c1
commit fef7b8ce90
2 changed files with 16 additions and 20 deletions

View file

@ -10752,10 +10752,10 @@ attribute handlers. So far this only affects the @var{noinit} and
@deftypefn {Target Hook} bool TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P (const_tree @var{fndecl})
@cindex inlining
This target hook returns @code{true} if it is OK to inline @var{fndecl}
into the current function, despite its having target-specific
attributes, @code{false} otherwise. By default, if a function has a
target specific attribute attached to it, it will not be inlined.
This target hook returns @code{false} if the target-specific attributes on
@var{fndecl} always block it getting inlined, @code{true} otherwise. By
default, if a function has a target specific attribute attached to it, it
will not be inlined.
@end deftypefn
@deftypefn {Target Hook} bool TARGET_OPTION_VALID_ATTRIBUTE_P (tree @var{fndecl}, tree @var{name}, tree @var{args}, int @var{flags})
@ -12253,12 +12253,10 @@ allocation.
@end deftypefn
@deftypefn {Target Hook} int TARGET_UNSPEC_MAY_TRAP_P (const_rtx @var{x}, unsigned @var{flags})
This target hook returns nonzero if @var{x}, an @code{unspec} or
@code{unspec_volatile} operation, might cause a trap. Targets can use
this hook to enhance precision of analysis for @code{unspec} and
@code{unspec_volatile} operations. You may call @code{may_trap_p_1}
to analyze inner elements of @var{x} in which case @var{flags} should be
passed along.
This target hook returns nonzero if @var{x}, an @code{unspec} might cause
a trap. Targets can use this hook to enhance precision of analysis for
@code{unspec} operations. You may call @code{may_trap_p_1} to analyze inner
elements of @var{x} in which case @var{flags} should be passed along.
@end deftypefn
@deftypefn {Target Hook} void TARGET_SET_CURRENT_FUNCTION (tree @var{decl})

View file

@ -2314,10 +2314,10 @@ attribute handlers. So far this only affects the @var{noinit} and\n\
DEFHOOK
(function_attribute_inlinable_p,
"@cindex inlining\n\
This target hook returns @code{true} if it is OK to inline @var{fndecl}\n\
into the current function, despite its having target-specific\n\
attributes, @code{false} otherwise. By default, if a function has a\n\
target specific attribute attached to it, it will not be inlined.",
This target hook returns @code{false} if the target-specific attributes on\n\
@var{fndecl} always block it getting inlined, @code{true} otherwise. By\n\
default, if a function has a target specific attribute attached to it, it\n\
will not be inlined.",
bool, (const_tree fndecl),
hook_bool_const_tree_false)
@ -4067,12 +4067,10 @@ allocation.",
FLAGS has the same meaning as in rtlanal.cc: may_trap_p_1. */
DEFHOOK
(unspec_may_trap_p,
"This target hook returns nonzero if @var{x}, an @code{unspec} or\n\
@code{unspec_volatile} operation, might cause a trap. Targets can use\n\
this hook to enhance precision of analysis for @code{unspec} and\n\
@code{unspec_volatile} operations. You may call @code{may_trap_p_1}\n\
to analyze inner elements of @var{x} in which case @var{flags} should be\n\
passed along.",
"This target hook returns nonzero if @var{x}, an @code{unspec} might cause\n\
a trap. Targets can use this hook to enhance precision of analysis for\n\
@code{unspec} operations. You may call @code{may_trap_p_1} to analyze inner\n\
elements of @var{x} in which case @var{flags} should be passed along.",
int, (const_rtx x, unsigned flags),
default_unspec_may_trap_p)