On Fri, 31 Jul 2020, Richard Biener wrote:
This adds a ! marker to result expressions that should simplify
(and if not fail the simplification). This can for example be
used like
(simplify
(plus (vec_cond:s @0 @1 @2) @3)
(vec_cond @0 (plus! @1 @3) (plus! @2 @3)))
to make the simplification only apply in case both plus operations
in the result end up simplified to a simple operand.
Thanks.
The ! syntax seems fine. If we run out, we can always introduce an
attribute-like syntax: (plus[force_leaf] @1 @2), but we aren't there yet.
And either this feature will see a lot of use and deserve its short
syntax, or it won't and it will be easy to reclaim '!' for something else.
I am wondering about GENERIC. IIUC, '!' is ignored for GENERIC. Should we
protect some/most uses of this syntax with #if GIMPLE? In my case, I think
resimplify might simply return non-0 because it swapped the operands,
which should not be sufficient to enable the transformation.
--
Marc Glisse