Thank you very much for your review!

On 11/25/2016 05:51 PM, Sandra Loosemore wrote:
On 11/22/2016 10:19 PM, Daniel Santos wrote:

diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt
index 9eef558..f556978 100644
--- a/gcc/config/i386/i386.opt
+++ b/gcc/config/i386/i386.opt
@@ -528,6 +528,11 @@ Enum(calling_abi) String(sysv) Value(SYSV_ABI)
  EnumValue
  Enum(calling_abi) String(ms) Value(MS_ABI)

+moutline-msabi-xlogues
+Target Report Mask(OUTLINE_MSABI_XLOGUES) Save
+Reduces function size by using out-of-line stubs to save & restore registers
+clobberd by differences in Microsoft and System V ABIs.
+

Just as a suggestion (I'm not an i386 maintainer), I'd recommend spelling the name of this option -mno-inline-msabi-xlogues instead of -moutline-msabi-xlogues, and making the default -minline-msabi-xlogues.

That is certainly more intuitive ("outline" or "out-of-line" vs "inline"). I guess I'm not sure what concept is more important, that it's not inline or that it's using stubs. Probably the former.


diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 8e2f466..4706085 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -25004,6 +25004,15 @@ You can control this behavior for specific functions by
  using the function attributes @code{ms_abi} and @code{sysv_abi}.
  @xref{Function Attributes}.

+@item -moutline-msabi-xlogues
+@itemx -mno-outline-msabi-xlogues

By convention, we only list the option form that is not the default....

OK. This is my first time to work on gcc, so still learning all of the conventions.


+@opindex moutline-msabi-xlogues

...but we should have index entries for both.

So basically I got that backwards. :)


+Due to differences in 64-bit ABIs, any Microsoft ABI function that calls a +SysV ABI function must consider RSI, RDI and XMM6-15 as clobbered, emitting +fairly lengthy prologues & epilogues. This option generates prologues & +epilogues that instead call stubs in libgcc to perform these saves & restores,
+thus reducing function size at the cost of a few extra instructions.

Please use the word "and" in all three locations here, instead of "&".

-Sandra

Now that I think of it, would "System V" be better than just "SysV"?

This is very helpful, thanks again. I'm working on a meaningful testsuite, so I suppose I should just submit a v3 with these changes when I'm done with the tests and hopefully I'll have a little more feedback on the back end & assembly as well.

Daniel

Reply via email to