Re: [PATCH] fold fold_truth_andor field merging into ifcombine was: [PATCH] assorted improvements for fold_truth_andor_1)

2024-10-10 Thread Richard Biener
On Thu, Sep 26, 2024 at 10:49 AM Alexandre Oliva wrote: > > > This patch introduces various improvements to the logic that merges > field compares, moving it into ifcombine. > > Before the patch, we could merge: > > (a.x1 EQNE b.x1) ANDOR (a.y1 EQNE b.y1) > > into something like: > > (((type

[PATCH] fold fold_truth_andor field merging into ifcombine was: [PATCH] assorted improvements for fold_truth_andor_1)

2024-09-26 Thread Alexandre Oliva
This patch introduces various improvements to the logic that merges field compares, moving it into ifcombine. Before the patch, we could merge: (a.x1 EQNE b.x1) ANDOR (a.y1 EQNE b.y1) into something like: (((type *)&a)[Na] & MASK) EQNE (((type *)&b)[Nb] & MASK) if both of A's fields li

Re: [PATCH] assorted improvements for fold_truth_andor_1

2020-10-06 Thread Richard Biener via Gcc-patches
On Fri, Oct 2, 2020 at 10:43 AM Alexandre Oliva wrote: > > Here's what I got so far, passing regstrap except for field-merge-1.c, > that relies on combining non-adjacent compares, which I haven't > implemented yet. Thanks for trying. > I had to retain some parts of fold_truth_andor_1 to avoid re

Re: [PATCH] assorted improvements for fold_truth_andor_1

2020-10-02 Thread Alexandre Oliva
Here's what I got so far, passing regstrap except for field-merge-1.c, that relies on combining non-adjacent compares, which I haven't implemented yet. I had to retain some parts of fold_truth_andor_1 to avoid regressions in gcc.c-torture/execute/ieee/compare-fp-3.c and gcc.dg/pr81228.c. gcc.targe

Re: [PATCH] assorted improvements for fold_truth_andor_1

2020-09-29 Thread Richard Biener via Gcc-patches
On Tue, Sep 29, 2020 at 3:07 PM Alexandre Oliva wrote: > > On Sep 29, 2020, Richard Biener wrote: > > > On Tue, Sep 29, 2020 at 9:23 AM Alexandre Oliva wrote: > > >> On Sep 28, 2020, Richard Biener wrote: > > > ifcombine should stop using fold*, yeah > > Wow, that's quite a lot of work for no e

Re: [PATCH] assorted improvements for fold_truth_andor_1

2020-09-29 Thread Alexandre Oliva
On Sep 29, 2020, Alexandre Oliva wrote: > Yeah, ifcombine's bb_no_side_effects_p gives up on any gimple_vuse in > the inner block. that won't do when the whole point is to merge loads > from memory. > That seems excessive. Since we rule out any memory-changing side > effects, I suppose we coul

Re: [PATCH] assorted improvements for fold_truth_andor_1

2020-09-29 Thread Alexandre Oliva
On Sep 29, 2020, Richard Biener wrote: > On Tue, Sep 29, 2020 at 9:23 AM Alexandre Oliva wrote: >> On Sep 28, 2020, Richard Biener wrote: > ifcombine should stop using fold*, yeah Wow, that's quite a lot of work for no expected improvement in codegen. I don't expect to be able to justify suc

Re: [PATCH] assorted improvements for fold_truth_andor_1

2020-09-29 Thread Richard Biener via Gcc-patches
On Tue, Sep 29, 2020 at 9:23 AM Alexandre Oliva wrote: > > On Sep 28, 2020, Richard Biener wrote: > > > On Fri, Sep 25, 2020 at 3:39 PM Alexandre Oliva wrote: > > >> This patch introduces various improvements to the logic that merges > >> field compares. > > > Sorry for throwing a wrench in here

Re: [PATCH] assorted improvements for fold_truth_andor_1

2020-09-29 Thread Alexandre Oliva
On Sep 28, 2020, Richard Biener wrote: > On Fri, Sep 25, 2020 at 3:39 PM Alexandre Oliva wrote: >> This patch introduces various improvements to the logic that merges >> field compares. > Sorry for throwing a wrench in here but doing this kind of transform > during GENERIC folding is considere

Re: [PATCH] assorted improvements for fold_truth_andor_1

2020-09-28 Thread Richard Biener via Gcc-patches
On Fri, Sep 25, 2020 at 3:39 PM Alexandre Oliva wrote: > > > This patch introduces various improvements to the logic that merges > field compares. > > Before the patch, we could merge: > > (a.x1 EQNE b.x1) ANDOR (a.y1 EQNE b.y1) > > into something like: > > (((type *)&a)[Na] & MASK) EQNE (((

[PATCH] assorted improvements for fold_truth_andor_1

2020-09-25 Thread Alexandre Oliva
This patch introduces various improvements to the logic that merges field compares. Before the patch, we could merge: (a.x1 EQNE b.x1) ANDOR (a.y1 EQNE b.y1) into something like: (((type *)&a)[Na] & MASK) EQNE (((type *)&b)[Nb] & MASK) if both of A's fields live within the same alignme