This is the mail archive of the 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]


On 22/05/14 22:18, Richard Earnshaw wrote:
> On 22/05/14 00:44, Kugan wrote:
>> Compiling some applications with -mgeneral-regs-only produces better
>> code (runs faster) compared to not using it. The difference here is that
>> when -mgeneral-regs-only is not used, floating point register are also
>> used in register allocation. Then IRA/LRA has to move them to core
>> registers before performing operations.
>> I experimented with TARGET_SPILL_CLASS (as in attached patch) to make
>> floating point register class as just spill class for integer pseudos.
>> Though this benefits the application which had this issue. Overall
>> performance with speck2k is neutral (some of the benchmarks benefits a
>> lot but others regress). I am looking to see if I can make it perform
>> better overall. Any suggestions welcome.
>> Attached experimental patch passes regression but 168.wupwise and
>> 187.facerec miscompares now. I am looking at fixing this as well.
> While I'll be the first to admit that the generic costs are currently
> little more than estimates, I'm worried about changing them based on the
> results of one benchmark run on a single (unspecified) implementation.
> The generic costs are intended to be a "best blend" of costs across a
> large range of implementations.  Generically tuned code will not
> necessarily be optimial on every processor -- what's more important is
> that it's not severely sub-optimal on any processor.

Thanks Richard for the comments. My primary intention here is to use
TARGET_SPILL_CLASS to make FP_REGS as spill registers. Do you think
AArch64 can benefit from TARGET_SPILL_CLASS hook. I agree that just
increasing GP2FP and FP2GP for all the modes as I am doing is not the
right think to do.


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