Question on TARGET_MMX and X86_TUNE_GENERAL_REGS_SSE_SPILL

Ilya Enkovich enkovich.gnu@gmail.com
Tue Apr 26 13:39:00 GMT 2016


2016-04-14 8:39 GMT+03:00 Kumar, Venkataramanan <Venkataramanan.Kumar@amd.com>:
> Hi,
>
> X86_TUNE_GENERAL_REGS_SSE_SPILL: Try to spill general regs to SSE regs instead of memory.
>
> I tried enabling the above tuning with -march=bdver4 -Ofast -mtune-ctrl=general_regs_sse_spill.
> I did not find any code differences.
>
> Looking at the below code to enable this tune,  mmx ISA needs to be turned off.
>
> static reg_class_t
> ix86_spill_class (reg_class_t rclass, machine_mode mode)
> {
>   if (TARGET_SSE && TARGET_GENERAL_REGS_SSE_SPILL && ! TARGET_MMX
>       && (mode == SImode || (TARGET_64BIT && mode == DImode))
>       && rclass != NO_REGS && INTEGER_CLASS_P (rclass))
>     return ALL_SSE_REGS;
>   return NO_REGS;
> }
>
> All processor variants enable MMX by default  and why we need to switch off mmx?

That really looks weird to me.  I ran SPEC2006 on Ofast + LTO with and
without -mno-mmx and
-mno-mmx gives (Haswell machine):

SPEC2006INT     :    +0.30%
SPEC2006FP      :    +0.60%
SPEC2006ALL     :    +0.48%

Which is quite surprising for disabling a hardware feature hardly used
anywhere now.


Thanks,
Ilya

>
> Thanks and regards,
> Venkat.



More information about the Gcc mailing list