https://gcc.gnu.org/g:671ba57ba3c7a7faf82df2d546d99a90edccefd7

commit r16-5706-g671ba57ba3c7a7faf82df2d546d99a90edccefd7
Author: Sandra Loosemore <[email protected]>
Date:   Sat Nov 1 20:35:12 2025 +0000

    doc, epiphany: Clean up epiphany target options and docs [PR122243]
    
    gcc/ChangeLog
            PR other/122243
            * config/epiphany/epiphany.opt (mlong-calls): Make it do something
            useful.
            (may-round-for-trunc): Make this undocumented option with a weird
            name an alias for -mmay-round-for-trunc.
            (mfp-iarith): Fix doc string.
            * doc/invoke.texi (Option Summary) <Adapteva Epiphany Options>:
            Add missing options.
            (Adapteva Epiphany Options): Document negative forms also when
            that is not the default, or where it's unclear.  Document
            -may-round-for-trunc and -mfp-iarith.  Fix spelling of
            -mpost-inc and -mpost-modify.

Diff:
---
 gcc/config/epiphany/epiphany.opt |  9 ++++--
 gcc/doc/invoke.texi              | 61 ++++++++++++++++++++++++++++++++--------
 2 files changed, 56 insertions(+), 14 deletions(-)

diff --git a/gcc/config/epiphany/epiphany.opt b/gcc/config/epiphany/epiphany.opt
index 9cd93db836a9..4b897540c350 100644
--- a/gcc/config/epiphany/epiphany.opt
+++ b/gcc/config/epiphany/epiphany.opt
@@ -72,7 +72,7 @@ target Mask(ROUND_NEAREST)
 Assume round to nearest is selected for purposes of scheduling.
 
 mlong-calls
-Target Mask(LONG_CALLS)
+Target InverseMask(SHORT_CALLS)
 Generate call insns as indirect calls.
 
 mshort-calls
@@ -103,7 +103,12 @@ Enum(attr_fp_mode) String(truncate) 
Value(FP_MODE_ROUND_TRUNC)
 EnumValue
 Enum(attr_fp_mode) String(int) Value(FP_MODE_INT)
 
+; This option has never been documented under this name, but it's
+; been around since 2012.
 may-round-for-trunc
+Target RejectNegative Undocumented Alias(mmay-round-for-trunc)
+
+mmay-round-for-trunc
 Target Mask(MAY_ROUND_FOR_TRUNC)
 A floating point to integer truncation may be replaced with rounding to save 
mode switching.
 
@@ -129,7 +134,7 @@ Split unaligned 8 byte vector moves before post-modify 
address generation.
 
 mfp-iarith
 Target Mask(FP_IARITH)
-Use the floating point unit for integer add/subtract.
+Use the floating-point unit for integer add/subtract.
 
 m1reg-
 Target RejectNegative Joined Var(epiphany_m1reg) Enum(m1reg) Init(-1)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index ad8d742bba4a..99279654b915 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -911,7 +911,8 @@ Objective-C and Objective-C++ Dialects}.
 -mbranch-cost=@var{num}  -mcmove  -mnops=@var{num}  -msoft-cmpsf
 -msplit-lohi  -mpost-inc  -mpost-modify  -mstack-offset=@var{num}
 -mround-nearest  -mlong-calls  -mshort-calls  -msmall16
--mfp-mode=@var{mode}  -mvect-double  -max-vect-align=@var{num}
+-mfp-mode=@var{mode}  -mmay-round-for-trunc  -mfp-iarith
+-mvect-double  -max-vect-align=@var{num}
 -msplit-vecmove-early  -m1reg-@var{reg}}
 
 @emph{AMD GCN Options} (@ref{AMD GCN Options})
@@ -23126,12 +23127,16 @@ These @samp{-m} options are defined for Adapteva 
Epiphany:
 
 @table @gcctabopt
 @opindex mhalf-reg-file
+@opindex mno-half-reg-file
 @item -mhalf-reg-file
+@itemx -mno-half-reg-file
 Don't allocate any register in the range @code{r32}@dots{}@code{r63}.
 That allows code to run on hardware variants that lack these registers.
 
 @opindex mprefer-short-insn-regs
+@opindex mno-prefer-short-insn-regs
 @item -mprefer-short-insn-regs
+@itemx -mno-prefer-short-insn-regs
 Preferentially allocate registers that allow short instruction generation.
 This can result in increased instruction count, so this may either reduce or
 increase overall code size.
@@ -23143,7 +23148,9 @@ This cost is only a heuristic and is not guaranteed to 
produce
 consistent results across releases.
 
 @opindex mcmove
+@opindex mno-cmove
 @item -mcmove
+@itemx -mno-cmove
 Enable the generation of conditional moves.
 
 @opindex mnops
@@ -23153,6 +23160,7 @@ Emit @var{num} NOPs before every other generated 
instruction.
 @opindex mno-soft-cmpsf
 @opindex msoft-cmpsf
 @item -mno-soft-cmpsf
+@itemx -msoft-cmpsf
 For single-precision floating-point comparisons, emit an @code{fsub} 
instruction
 and test the flags.  This is faster than a software comparison, but can
 get incorrect results in the presence of NaNs, or when two different small
@@ -23177,24 +23185,34 @@ toolchain with the appropriate 
@option{--with-stack-offset=@var{num}} option.
 @opindex mno-round-nearest
 @opindex mround-nearest
 @item -mno-round-nearest
-Make the scheduler assume that the rounding mode has been set to
+@itemx -mround-nearest
+@option{-mno-round-nearest}
+makes the scheduler assume that the rounding mode has been set to
 truncating.  The default is @option{-mround-nearest}.
 
 @opindex mlong-calls
+@opindex mno-long-calls
 @item -mlong-calls
 If not otherwise specified by an attribute, assume all calls might be beyond
 the offset range of the @code{b} / @code{bl} instructions, and therefore load 
the
 function address into a register before performing a (otherwise direct) call.
 This is the default.
 
-@opindex short-calls
+@opindex mshort-calls
+@opindex mno-short-calls
 @item -mshort-calls
 If not otherwise specified by an attribute, assume all direct calls are
 in the range of the @code{b} / @code{bl} instructions, so use these 
instructions
-for direct calls.  The default is @option{-mlong-calls}.
+for direct calls.
+
+The default is @option{-mlong-calls}.  Note that @option{-mlong-calls}
+is equivalent to @option{-mno-short-calls}, and similarly
+@option{-mno-long-calls} is equivalent to @option{-mshort-calls}.
 
 @opindex msmall16
+@opindex mno-small16
 @item -msmall16
+@itemx -mno-small16
 Assume addresses can be loaded as 16-bit unsigned values.  This does not
 apply to function addresses for which @option{-mlong-calls} semantics
 are in effect.
@@ -23236,23 +23254,40 @@ integer multiply, or integer multiply-and-accumulate.
 
 The default is @option{-mfp-mode=caller}
 
+@opindex mmay-round-for-trunc
+@opindex mno-may-round-for-trunc
+@item -mmay-round-for-trunc
+@itemx -mno-may-round-for-trunc
+This option allows floating point to integer truncation to be replaced
+with rounding to save mode switching.  It's disabled by default.
+
+@opindex mfp-iarith
+@opindex mno-fp-iarith
+@item -mfp-iarith
+@itemx -mno-fp-iarith
+This option enables use of the floating-point unit for integer add and
+subtract.  It's disabled by default.
+
 @opindex mno-split-lohi
 @opindex msplit-lohi
-@opindex mno-postinc
-@opindex mpostinc
+@opindex mno-post-inc
+@opindex mpost-inc
 @opindex mno-postmodify
-@opindex mpostmodify
-@item -mno-split-lohi
-@itemx -mno-postinc
-@itemx -mno-postmodify
-Code generation tweaks that disable, respectively, splitting of 32-bit
+@opindex mpost-modify
+@item -msplit-lohi
+@itemx -mno-split-lohi
+@itemx -mpost-inc
+@itemx -mno-post-inc
+@itemx -mpost-modify
+@itemx -mno-post-modify
+Code generation tweaks that control, respectively, splitting of 32-bit
 loads, generation of post-increment addresses, and generation of
 post-modify addresses.  The defaults are @option{msplit-lohi},
 @option{-mpost-inc}, and @option{-mpost-modify}.
 
 @opindex mno-vect-double
 @opindex mvect-double
-@item -mnovect-double
+@item -mno-vect-double
 Change the preferred SIMD mode to SImode.  The default is
 @option{-mvect-double}, which uses DImode as preferred SIMD mode.
 
@@ -23265,7 +23300,9 @@ interfaces are unaffected if they don't use SIMD vector 
modes
 in places that affect size and/or alignment of relevant types.
 
 @opindex msplit-vecmove-early
+@opindex mno-split-vecmove-early
 @item -msplit-vecmove-early
+@itemx -mno-split-vecmove-early
 Split vector moves into single word moves before reload.  In theory this
 can give better register allocation, but so far the reverse seems to be
 generally the case.

Reply via email to