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

commit r16-5707-gb67da7cf289f51e750cf522280160cfd35586867
Author: Sandra Loosemore <[email protected]>
Date:   Sat Nov 1 22:57:01 2025 +0000

    doc, gcn: Clean up gcn target options and docs [PR122243] [PR122288]
    
    Per PR target/122288, gcn.opt contained some invalid syntax that was
    quietly accepted by the options processor.  This patch fixes that,
    marks some useless options as "Undocumented", and brings the
    documentation into sync with the options file.
    
    I tested the .opt file changes on both a standalone gcn build (gcc and
    g++ testsuites) and in an x86_64-linux-gnu build with gcn as offload
    target (libgomp).
    
    gcc/ChangeLog
            PR other/122243
            PR target/122288
            * config/gcn/gcn.opt (m32, m64, mgomp): Mark "Undocumented"
            since these options don't actually do anything useful.
            (flag_bypass_init_error, stack_size_opt, gang_size_opt): Correct
            opt file syntax.
            (mstack-size=): Mark "Undocumented" since it's obsolete.
            * doc/invoke.texi (Option Summary) <AMD GCN Options>:
            Remove obsolete options, add missing entries for
            -mgang-private-size=, -msram-ecc=, and -mxnack=.
            (AMD GCN Options): Likewise.

Diff:
---
 gcc/config/gcn/gcn.opt | 20 +++++++++++++++-----
 gcc/doc/invoke.texi    | 21 +++++++++++----------
 2 files changed, 26 insertions(+), 15 deletions(-)

diff --git a/gcc/config/gcn/gcn.opt b/gcc/config/gcn/gcn.opt
index 1b2d5cca289e..e877912fadc0 100644
--- a/gcc/config/gcn/gcn.opt
+++ b/gcc/config/gcn/gcn.opt
@@ -29,29 +29,39 @@ mtune=
 Target RejectNegative Negative(mtune=) Joined ToLower Enum(gpu_type) 
Var(gcn_tune) Init(PROCESSOR_GFX90A)
 Specify the name of the target GPU.
 
+; mkoffload passes -m32, -m64, and -mgomp to the offload compiler, but
+; nothing in the offload compiler actually uses any of these flags.
+; Maybe they're there for compatibility with other offload backends,
+; or maybe we can just delete these.  In any case, there's no point in
+; documenting them for users.
 m32
-Target RejectNegative InverseMask(ABI64)
+Target RejectNegative InverseMask(ABI64) Undocumented
 Generate code for a 32-bit ABI.
 
 m64
-Target RejectNegative Mask(ABI64)
+Target RejectNegative Mask(ABI64) Undocumented
 Generate code for a 64-bit ABI.
 
 mgomp
-Target RejectNegative
+Target RejectNegative Undocumented
 Enable OpenMP GPU offloading.
 
+; This option seems not to ever have done anything useful, or to have
+; been documented.
+Variable
 bool flag_bypass_init_error = false
 
 mbypass-init-error
-Target RejectNegative Var(flag_bypass_init_error)
+Target RejectNegative Var(flag_bypass_init_error) Undocumented
 
+Variable
 int stack_size_opt = -1
 
 mstack-size=
-Target RejectNegative Joined UInteger Var(stack_size_opt) Init(-1)
+Target RejectNegative Joined UInteger Var(stack_size_opt) Init(-1) Undocumented
 Obsolete; use GCN_STACK_SIZE at runtime.
 
+Variable
 int gang_private_size_opt = -1
 
 mgang-private-size=
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 99279654b915..46dc363a5d59 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -916,7 +916,10 @@ Objective-C and Objective-C++ Dialects}.
 -msplit-vecmove-early  -m1reg-@var{reg}}
 
 @emph{AMD GCN Options} (@ref{AMD GCN Options})
-@gccoptlist{-march=@var{gpu} -mtune=@var{gpu} -mstack-size=@var{bytes}
+@gccoptlist{-march=@var{gpu} -mtune=@var{gpu}
+-mgang-private-size=@var{bytes}
+-msram-ecc=@r{[}on@r{|}off@r{|}any@r{]}
+-mxnack=@r{[}on@r{|}off@r{|}any@r{]}
 -Wopenacc-dims}
 
 @emph{ARC Options} (@ref{ARC Options})
@@ -23426,6 +23429,11 @@ Compile generic code for GFX11 devices, executable on 
gfx1100, gfx1101,
 gfx1102, gfx1103, gfx1150, gfx1151, gfx1152, and gfx1153.
 @end table
 
+@opindex mgang-private-size
+@item -mgang-private-size=@var{bytes}
+Set the amount of local data-share (LDS) memory to reserve for
+gang-private variables.  The default is 512.
+
 @opindex msram-ecc
 @item -msram-ecc=on
 @itemx -msram-ecc=off
@@ -23435,14 +23443,6 @@ disabled, or either mode.  This feature can be enabled 
per-process on some
 devices.  The compiled code must match the device mode. The default is
 @samp{any}, for devices that support it.
 
-@opindex mstack-size
-@item -mstack-size=@var{bytes}
-Specify how many @var{bytes} of stack space will be requested for each GPU
-thread (wave-front).  Beware that there may be many threads and limited memory
-available.  The size of the stack allocation may also have an impact on
-run-time performance.  The default is 32KB when using OpenACC or OpenMP, and
-1MB otherwise.
-
 @opindex mxnack
 @item -mxnack=on
 @itemx -mxnack=off
@@ -23456,7 +23456,8 @@ Memory, and @samp{-mxnack=no} otherwise.
 @opindex Wopenacc-dims
 @opindex Wno-openacc-dims
 @item -Wopenacc-dims
-Warn about invalid OpenACC dimensions.
+@itemx -Wno-openacc-dims
+Control warnings about invalid OpenACC dimensions.
 
 @end table

Reply via email to