[PATCH][tree-ssa-mathopts] PR tree-optimization/87259: Try execute_cse_reciprocals_1 when optimize_recip_sqrt fails
Richard Biener
richard.guenther@gmail.com
Fri Sep 14 13:19:00 GMT 2018
On Wed, Sep 12, 2018 at 6:25 PM Kyrill Tkachov
<kyrylo.tkachov@foss.arm.com> wrote:
>
>
> On 12/09/18 15:51, Richard Biener wrote:
> > On Wed, Sep 12, 2018 at 2:56 PM Kyrill Tkachov
> > <kyrylo.tkachov@foss.arm.com> wrote:
> >> Hi all,
> >>
> >> This PR is an SSA validation error where the definition ends up not dominating a use.
> >> This appeared after my recip_sqrt optimisation. Though the optimisation doesn't get triggered
> >> as there is no sqrt involved it prevents execute_cse_reciprocals_1 from running as it's currently
> >> an either/or situation. I think execute_cse_reciprocals_1 doesn't like it when some divisions get
> >> execute_cse_reciprocals_1 called on them and some don't.
> >>
> >> This patch changes optimize_recip_sqrt to return a boolean indicating success and call execute_cse_reciprocals_1
> >> if no transform was made so that execute_cse_reciprocals_1 has a chance to optimise it as well.
> >>
> >> Bootstrapped and tested on x86_64-unknown-linux-gnu.
> >> Ok for trunk?
> > OK. But your analysis suggests to do it the other way around - call
> > execute_cse_reciprocals_1 and if that
> > leaves a division at *gsi process it with optimize_recip_sqrt?
> >
>
> Ah, that's a shorter approach, this version implements that.
>
> Bootstrapped and tested on x86_64-unknown-linux-gnu.
> Is this preferable?
Yes.
OK for trunk.
Richard.
> Thanks,
> Kyrill
>
> 2018-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
>
> PR tree-optimization/87259
> PR lto/87283
> (pass_cse_reciprocals::execute): Run optimize_recip_sqrt after
> execute_cse_reciprocals_1 has tried transforming.
>
> 2018-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
>
> PR tree-optimization/87259
> * gcc.dg/pr87259.c: New test.
>
More information about the Gcc-patches
mailing list