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.
---
 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 9cd93db836a..4b897540c35 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 ee3c426b606..9392a2abfc7 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -910,7 +910,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})
@@ -23110,12 +23111,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.
@@ -23127,7 +23132,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
@@ -23137,6 +23144,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
@@ -23161,24 +23169,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.
@@ -23220,23 +23238,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.
 
@@ -23249,7 +23284,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.
-- 
2.39.5

Reply via email to