This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch mips/gcc] add build-time and runtime options to disable or set madd.fmt type


On 01/10/2017 07:24 AM, Yunqiang Su wrote:
Hi, folks, any idea about this patch?

I can only comment on the documentation parts.

diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index b911d76dd66..e548733537d 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -1338,6 +1338,23 @@ In the absence of this configuration option the default convention is
the legacy encoding, as when neither of the @option{-mnan=2008} and
@option{-mnan=legacy} command-line options has been used.

+@item --with-madd4=@var{type}
+On MIPS targets, set the default behaivor of madd.fmt/msub.fmt. The

s/behaivor/behavior/

Are you really setting/describing the behavior of these instructions on the target, or are you setting how GCC generates code for them?

+possibilities for @var{type} are:
+@table @code
+@item unfused
+The madd.fmt/msub.fmt instructions are unfused, as with the
+@option{-mmadd4=unfused} command-line option.
+@item fused
+The madd.fmt/msub.fmt instructions are fused, as with the
+@option{-mmadd4=fused} command-line option.
+@item no
+The madd.fmt/msub.fmt are disabled, as with the @option{-mmadd4=no}

s/are/instructions are/
+command-line option.
+@end table
+In the absence of this configuration option the default convention is
+the unfused, while for MIPS r6 and Loongson, the default is fused.

s/the unfused/@samp{unfused}
s/fused/@samp{fused}

The MIPS maintainers may correct me on this, but it looks to me like "MIPS r6" is not an official name of anything. I see "MIPS Release 6" on the Imagination web site and in the MIPS processor documentation.

Finally, I'm confused about whether the default is based on the processor selected at compile time, or depends on some other configure-time option.

diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 1096254085f..e88040cdceb 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -19289,6 +19289,29 @@ their trailing significand field being 0.
The default is @option{-mnan=legacy} unless GCC has been configured with
@option{--with-nan=2008}.

+@item -mmadd4=unfused
+@item -mmadd4=fused
+@item -mmadd4=no

Use @itemx instead of @item for entries other than the first.

+@opindex mmadd4=unfused
+@opindex mmadd4=fused
+@opindex mmadd4=no

I think it's sufficient to just have a single index entry

@opindex mmadd4=

+These options control the type of madd.fmt/msub.fmt, unfused, fused
+or disabled at all.

"type of" is confusing.  Maybe just say

These options control generation of madd.fmt/msub.fmt instructions.

+
+The @option{-mmadd4=unfused} option will set type of madd.fmt/msub.fmt

Same concerns about "type of" here, plus
s/will set/sets/

+to be unfused if they are generated.
+
+The @option{-mmadd4=fused} option will set type of madd.fmt/msub.fmt
+to be fused if they are generated.

Same here.

+
+The @option{-mmadd4=no} option will disable madd.fmt/msub.fmt
+to be generated at all.

s/will disable/prevents/
s/to be generated/from being generated/


+
+The default is @option{-mmadd4=unfused} unless GCC has been configured
+for MIPS r6+ or Loongson. If runtime flags for MIPS r6 or Loongson is
+given, the type will always be `fused', no matter what value
+@option{-mmadd4=} is.
+

Same concerns about "MIPS r6".

I suggest rewriting the second sentence as something like

"If compiling for a MIPS Release 6 or Loongson processor, this option is ignored and the behavior is as if @samp{fused} were specified."

I think we are talking about controlling code generation determined by compilation options, and not detecting runtime processor flag bits, right?

-Sandra


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]