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