On May 8, 2015 11:58:18 PM GMT+02:00, Jan Hubicka <hubi...@ucw.cz> wrote:
>> On Fri, May 08, 2015 at 01:09:52PM -0600, Jeff Law wrote:
>> > On 05/08/2015 01:07 PM, David Edelsohn wrote:
>> > >>>>Steve Ellcey wrote:
>> > >>
>> > >>After your change GCC sees that the code for f1 and f2 are
>identical
>> > >>so it replaced the body of f2 with a call to f1.  This
>optimization will
>> > >>save space but it is not going to be faster because any call to
>f2 will
>> > >>now include an extra call/return.  Do other platforms have this
>same issue
>> > >>or is there a way to make f2 an alias for f1 on other targets so
>no extra
>> > >>call is needed?  I looked around to see if there was a target
>function or
>> > >>macro that is used to make one function an alias of another but I
>didn't
>> > >>see anything.
>> > >
>> > >This probably is not good for POWER, and probably not for ARM, in
>fact
>> > >probably not good for most RISC architectures.
>> > But isn't this code going to be creating aliases when the output
>format
>> > supports them -- which avoids the call/return overheads?
>> > 
>> > Which might argue that if we don't have aliases, then ICF might
>need to be a
>> > -Os thing.
>> 
>> ICF uses aliases only when possible (when it can prove that the
>callers
>> don't care about function address equality/non-equality.  In other
>cases
>> ICF uses caller redirection (if it is possible to redirect all
>callers and
>> remove unused other call), or thunks (otherwise).
>> 
>> Thunks indeed can slow things down somewhat, especially if they can't
>tail
>> call the function.
>
>Yep, the idea here is that inliner should undo the splitting in most
>cases
>where the hot path performance matters.
>For GCC 6 we plan to work bit on this and try to chose thunks to point
>in right
>direction.  It also may be possible to arrange backend to output those
>thunks
>as simple nops just ahead of the target functions (and also to output
>thunks
>there without the redundant jump instructions)

... which will hopefully address https://gcc.gnu.org/PR65534

thanks,

Reply via email to