I have posted 5 patches as part of a larger series to merge
(parts) from the match-and-simplify branch.  While I think
there was overall consensus that the idea behind the project
is sound there are technical questions left for how the
thing should look in the end.  I've raised them in 3/n
which is the only patch of the series that contains any
patterns sofar.

To re-iterate here (as I expect most people will only look
at [0/n] patches ;)), the question is whether we are fine
with making fold-const (thus fold_{unary,binary,ternary})
not handle some cases it handles currently.

Some cases may result from the fact that the autogenerated
code from genmatch does not apply selective STRIP_NOPS/STRIP_SIGN_NOPS
to the outermost expression operands as fold does.

Some cases may result from the fact that the autogenerated
code bails out on operands with side-effects (patterns
really target GIMPLE where operands never have side-effects).

In 10 years (well, maybe earlier) we shouldn't do any
expression simplification from the frontends (and thus
GENERIC) if not explicitely required by language standards.
Thus I expect fold-const.c to "vanish" anyway.

Generally it is of course impossible to prove that adding
a pattern and removing existing fold-const.c and
gimple-fold.c/tree-ssa-forwprop.c code will not regress.
But I suppose that's expected and passing the testsuite
is fine (together with possibly amending it with testcases
for foldings that now should apply on GIMPLE).

For stage1 I'd like to merge [1/n] to [5/n] as one revision
(well, excluding 3/n) and add patterns in smaller chunks
to be able to bisect to issues that show up.

Any comments and reviews welcome (I don't think that
my maintainership covers enough to simply check this in
without approval).

Thanks,
Richard.

-- 
Richard Biener <rguent...@suse.de>
SUSE / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746
GF: Jeff Hawn, Jennifer Guild, Felix Imend"orffer

Reply via email to