From fef7b8ce9029a0538d0c051b3100ed3deb544b2b Mon Sep 17 00:00:00 2001 From: Matthew Malcomson Date: Tue, 2 Jul 2024 11:11:11 +0100 Subject: [PATCH] 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 c84a808e493a, 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. --- gcc/doc/tm.texi | 18 ++++++++---------- gcc/target.def | 18 ++++++++---------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 24c92e2e733..f10d9a59c66 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -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}) diff --git a/gcc/target.def b/gcc/target.def index e6f4df963f0..ce4d1ecd58b 100644 --- a/gcc/target.def +++ b/gcc/target.def @@ -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)