This is the mail archive of the gcc-patches@gcc.gnu.org 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]

Re: [patch i386]: Expand sibling-tail-calls via accumulator register


On 05/27/2014 09:48 AM, Jeff Law wrote:
>>     lea    ofs(base, index, scale), %eax
>>     ...
>>     call    *0(%eax)
>>
>> we might as well include the memory load
>>
>>     mov    ofs(base, index, scale), %eax
>>     ...
>>     call    *%eax
> Ok.  My misunderstanding.
> 
> Granted, this probably doesn't happen enough to matter, but isn't it likely
> profitable from a pipeline standpoint to go ahead and do the memory load
> separate from the indirect call/jump as well?

I'm sure.  Especially if the data is currently living in L2, and the scheduler
has enough room to move the load sufficiently early to hide the latency.

As I've said before, I think this is interesting solely as a space optimization.


r~


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