tree-optimization/99912 - schedule DSE before SRA
authorRichard Biener <rguenther@suse.de>
Wed, 7 Apr 2021 10:09:44 +0000 (12:09 +0200)
committerRichard Biener <rguenther@suse.de>
Tue, 27 Apr 2021 13:17:34 +0000 (15:17 +0200)
commitd8e1f1d24179690fd9c0f63c27b12e030010d9ea
tree1345f61b38815741d1756b78f1eb403646e2269f
parent39073938b4e85fdbdc897c32e56fb5fc59ded9b5
tree-optimization/99912 - schedule DSE before SRA

For the testcase in the PR the main SRA pass is unable to do some
important scalarizations because dead stores of addresses make
the candiate variables disqualified.  The following patch adds
another DSE pass before SRA forming a DCE/DSE pair and moves the
DSE pass that is currently closely after SRA up to after the
next DCE pass, forming another DCE/DSE pair now residing after PRE.

2021-04-07  Richard Biener  <rguenther@suse.de>

PR tree-optimization/99912
* passes.def (pass_all_optimizations): Add pass_dse before
the first pass_dce, move the first pass_dse before the
pass_dce following pass_pre.

* gcc.dg/tree-ssa/ldist-33.c: Disable PRE and LIM.
* gcc.dg/tree-ssa/pr96789.c: Adjust dump file scanned.
* gcc.dg/tree-ssa/ssa-dse-28.c: Likewise.
* gcc.dg/tree-ssa/ssa-dse-29.c: Likewise.
gcc/passes.def
gcc/testsuite/gcc.dg/tree-ssa/ldist-33.c
gcc/testsuite/gcc.dg/tree-ssa/pr96789.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-28.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-29.c