On 10/6/26 11:56 AM, Aldy Hernandez wrote:
On Mon, Oct 05, 2026 at 03:02:14PM +0200, Aldy Hernandez wrote:
On Mon, Oct 05, 2026 at 01:48:01AM -0600, Jeff Law wrote:
On 10/4/26 5:24 AM, Aldy Hernandez wrote:
[Well, since we can't get rid of DOM yet, why don't we clean it up and
remove stuff we can clearly do better with ranges. Maybe we can
reduce it to a bare minimum ;-).]
We now have all the pieces to do what test_for_singularity does, but
with ranges. Remove the function and use simplify_using_ranges
instead.
This makes DOM a tiny bit smarter, since simplify_using_ranges is far
more capable than the ad-hoc stuff we did. As much as I hate making
it smarter, it's all in the interest of nuking it :).
Tested on ppc64le Linux.
OK for trunk?
gcc/ChangeLog:
* tree-ssa-dom.cc (dom_opt_dom_walker::m_dummy_cond): Remove.
(dom_opt_dom_walker::test_for_singularity): Remove.
(dom_opt_dom_walker::fold_cond): Remove.
(dom_opt_dom_walker::simplify_stmt): New.
(dom_opt_dom_walker::optimize_stmt): Call it in place of
test_for_singularity and fold_cond.
gcc/testsuite/ChangeLog:
* gcc.dg/tree-ssa/predcom-7.c: Add -fno-tree-dominator-opts.
* gcc.dg/tree-ssa/ssa-dom-simplify-3.c: New test.
IIRC we've wanted to nuke this optimization as interacts poorly with SCEV.
Furthermore, the main purpose was to turn these things into equality
comparisons which in turn would expose the constant equivalence on one of
the edges, something done quite well by using Ranger already.
So no objection to the patch, but if you wanted to get a lot more aggressive
about this blob of code and nuke it, you've got my blessing.
How about this?
I'm gonna take your "you've got my blessing" as an approval and push it,
especially since it gets the regression bots off my back :).
That was the intent, sorry for not being explicit.
Thanks.
jeff