[PATCH] Cleanup TODO handling for CFG clenaup & SSA update
Richard Biener
rguenther@suse.de
Fri Mar 8 16:12:00 GMT 2019
On March 8, 2019 3:52:36 PM GMT+01:00, Jeff Law <law@redhat.com> wrote:
>On 3/8/19 7:23 AM, Richard Biener wrote:
>>
>> There's an old comment
>>
>> /* When cleanup_tree_cfg merges consecutive blocks, it may
>> perform some simplistic propagation when removing single
>> valued PHI nodes. This propagation may, in turn, cause the
>> SSA form to become out-of-date (see PR 22037). So, even
>> if the parent pass had not scheduled an SSA update, we may
>> still need to do one. */
>> if (!(flags & TODO_update_ssa_any) && need_ssa_update_p (cfun))
>> flags |= TODO_update_ssa;
>>
>> which is from times we've had multiple virtual operands. After
>> those went away we could still run into this for example when
>> propagating a non-const function address into an indirect call
>> through a const function type. This has been fixed as well
>> (we retain the const-ness of the call). Thus the above is
>> no longer necessary and we can simplify the code.
>>
>> Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.
>>
>> I'm not really nervous about this change but if you think it
>> should wait for GCC 10 speak up.
>>
>> Richard.
>>
>> 2019-03-08 Richard Biener <rguenther@suse.de>
>>
>> * passes.c (execute_function_todo): Remove dead code.
>What's driving the desire to change this for gcc-9? I think it's a
>fine
>cleanup for gcc-10, but it's not clear to me we want to push it into
>gcc-9.
Just that I came along this with the previous related CFG cleanup fix and got the time to test it.
Queued for GCC 10 instead.
Richard.
>jeff
More information about the Gcc-patches
mailing list