[PATCH] Expand PIC calls without PLT with -fno-plt

Jeff Law law@redhat.com
Tue Jun 23 13:28:00 GMT 2015


On 06/23/2015 02:29 AM, Ramana Radhakrishnan wrote:

>> If you try disabling the REG_EQUAL note generation [*], you'll probably find a
>> performance regression on arm32 (and probably on aarch64 as well?
>> we only
>
> IMHO disabling the REG_EQUAL note generation is the wrong way to go about this.
Agreed.

> Irrespective of combine, as a first step we should fix the predicates
> and the call expanders to prevent this sort of replacement in the
> backends. Tightening the predicates in the call patterns will achieve
> the same for you and then we can investigate the use of GOT_PREL. My
> recollection of this is that you need to work out when it's more
> beneficial to use GOT_PREL over GOT but it's been a while since I
> looked in that area.
Also agreed.  This is primarily a backend issue with the call patterns.

This is similar to the situation on the PA with the 32bit SOM runtime 
where direct and indirect calls have different calling conventions. 
Those different calling conventions combined with the early loading of 
the parameter registers in effect restricts us from being able to 
transform an indirect call into a direct call (combine) or vice-versa (cse).

The way we handled this was to split the calls into two patterns, one 
for direct one for indirect and tightening their predicates appropriately.

Jeff



More information about the Gcc-patches mailing list