PATCH: [5 Regression] r219037 caused FAIL: gcc.dg/pr44194-1.c

H.J. Lu hjl.tools@gmail.com
Sat Jan 3 19:48:00 GMT 2015


On Sat, Jan 3, 2015 at 9:35 AM, John David Anglin
<dave@hiauly1.hia.nrc.ca> wrote:
> On Wed, 31 Dec 2014, H.J. Lu wrote:
>
>> -      /* Arguments for a sibling call that are pushed to memory are passed
>> -      using the incoming argument pointer of the current function.  These
>> -      may or may not be frame related depending on the target.  Since
>> -      argument pointer related stores are not currently tracked, we treat
>> -      a sibling call as though it does a wild read.  */
>> -      if (SIBLING_CALL_P (insn))
>> +      if (targetm.sibcall_wild_read_p (insn))
>>       {
>>         add_wild_read (bb_info);
>>         return;
>
> Instead of falling through to code designed to handle normal calls, it
> would be better to treat them separately.  Potentially, there are other
> optimizations that may be applicable.  If a sibcall doesn't read from
> the frame, add_non_frame_wild_read() can be called.  This would restore
> the x86 optimization.
>

That will a new optimization.  I am trying to restore the old behavior on
x86 with minimum impact in stage 3.


-- 
H.J.



More information about the Gcc-patches mailing list