[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