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] Add -minline-intermix to ignore compression flags when inlining


On 05/24/2016 08:23 AM, Robert Suchanek wrote:


[snip]

diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 73f1cb6..2f6195e 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -837,6 +837,7 @@ Objective-C and Objective-C++ Dialects}.
  -mips16  -mno-mips16  -mflip-mips16 @gol
  -minterlink-compressed -mno-interlink-compressed @gol
  -minterlink-mips16  -mno-interlink-mips16 @gol
+-minline-intermix -mno-inline-intermix @gol

Funky indentation here....

  -mabi=@var{abi}  -mabicalls  -mno-abicalls @gol
  -mshared  -mno-shared  -mplt  -mno-plt  -mxgot  -mno-xgot @gol
  -mgp32  -mgp64  -mfp32  -mfpxx  -mfp64  -mhard-float  -msoft-float @gol
@@ -17916,6 +17917,18 @@ Aliases of @option{-minterlink-compressed} and
  @option{-mno-interlink-compressed}.  These options predate the microMIPS ASE
  and are retained for backwards compatibility.

+@item -minline-intermix
+@itemx -mno-inline-intermix
+@opindex minline-intermix
+@opindex mno-inline-intermix
+Enable inlining of functions which have opposing compression flags e.g.
+@code{mips16}/@code{nomips16} attributes.
+This is useful when using the @code{mips16} attribute to balance code size
+and performance so that a function will be compressed when not inlined or
+vice-versa.  When using this option it is necessary to protect functions
+that cannot be compiled as MIPS16 with a @code{noinline} attribute to ensure
+they are not inlined into a MIPS16 function.

This flag applies to microMIPS inlining, too, right? It's confusing to only mention MIPS16.

Maybe you could say something like this instead:

Allow inlining even if the compression flags differ between caller and callee. This is useful in conjunction with the @code{mips16}, @code{micromips}, or @code{nocompression} function attributes. The code for the inlined function is compiled using the compression flags for the callee, so you may need to use the @code{noinline} attribute on functions that must be compiled with particular compression settings.

-Sandra


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