https://gcc.gnu.org/g:fef7b8ce9029a0538d0c051b3100ed3deb544b2b

commit r15-1784-gfef7b8ce9029a0538d0c051b3100ed3deb544b2b
Author: Matthew Malcomson <matthew.malcom...@arm.com>
Date:   Tue Jul 2 11:11:11 2024 +0100

    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.

Diff:
---
 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)

Reply via email to