[PATCH PR95855]A missing ifcvt optimization to generate fcsel
Richard Biener
richard.guenther@gmail.com
Tue Jun 30 13:56:24 GMT 2020
On Tue, Jun 30, 2020 at 1:31 PM yangyang (ET) <yangyang305@huawei.com> wrote:
>
> > On Tue, Jun 30, 2020 at 4:29 AM yangyang (ET) <yangyang305@huawei.com>
> > wrote:
> > >
> > > Hi,
> > >
> > > > > Hi,
> > > > >
> > > > > This is a simple fix for pr95855.
> > > > >
> > > > > With this fix, pass_split_paths can recognize the
> > > > > if-conversion
> > > > opportunity of the testcase and doesn't duplicate the corresponding block.
> > > > >
> > > > > Added one testcase for this. Bootstrap and tested on both
> > > > > aarch64 and
> > > > x86 Linux platform, no new regression witnessed.
> > > > >
> > > > > Ok for trunk?
> > > >
> > > > Can you try using the num_stmts_in_pred[12] counts instead of using
> > > > empty_block_p?
> > >
> > > It' ok to using num_stmts_in_pred[12] to judge whether the pred[12] is
> > > empty since bb's immediate dominator can't meet the constraints
> > > "single_pred_p (pred[12]) && single_pred (pred[12]) == pred[21]".
> > >
> > > >
> > > > Your matching doesn't allow for FP constants like
> > > >
> > > > dmax[0] = d1[i] < 1.0 ? 1.0 : d1[i];
> > > >
> > > > since FP constants are not shared. You likely want to use
> > > > operand_equal_p to do the PHI argument comparison.
> > >
> > > That's right, after using operand_equal_p instead of == to do the PHI
> > > argument Comparison, the mentioned case can be covered as well.
> > >
> > > >
> > > > Thanks,
> > > > Richard.
> > >
> > > Thanks for your suggestions. We have revised our patch based on your
> > suggestions.
> > >
> > > Bootstrap and tested on both aarch64 and x86 Linux platform. Does the v1
> > patch looks better?
> >
> > Yes. This variant is OK.
> >
> > Thanks,
> > Richard.
>
> Thanks for reviewing this. Could you please help install it?
Installed. Please double-check your ChangeLog with
gcc-verify, it had a typo in the testcase filename.
Richard.
> Yang Yang
More information about the Gcc-patches
mailing list