Run pass_sink_code once more before store_merging
authorXionghu Luo <luoxhu@linux.ibm.com>
Wed, 19 May 2021 02:34:18 +0000 (21:34 -0500)
committerXionghu Luo <luoxhu@linux.ibm.com>
Wed, 19 May 2021 02:34:18 +0000 (21:34 -0500)
commitde56f95afaaa22c67cbeec780921d63e8b34514e
treec1f3457e45da38b04c2bd5d60e100e94fd974141
parent39ed6a88c74db5412652f0167d03f71eca4f02fc
Run pass_sink_code once more before store_merging

Gimple sink code pass runs quite early, there may be some new
oppertunities exposed by later gimple optmization passes, this patch
runs the sink code pass once more before store_merging.  For detailed
discussion, please refer to:
https://gcc.gnu.org/pipermail/gcc-patches/2020-December/562352.html

Tested the SPEC2017 performance on P8LE, 544.nab_r is improved
by 2.43%, but no big changes to other cases, GEOMEAN is improved quite
small with 0.25%.

gcc/ChangeLog:

2021-05-18  Xionghu Luo  <luoxhu@linux.ibm.com>

* passes.def: Add sink_code pass before store_merging.
* tree-ssa-sink.c (pass_sink_code:clone): New.

gcc/testsuite/ChangeLog:

2021-05-18  Xionghu Luo  <luoxhu@linux.ibm.com>

* gcc.dg/tree-ssa/ssa-sink-1.c: Adjust.
* gcc.dg/tree-ssa/ssa-sink-2.c: Ditto.
* gcc.dg/tree-ssa/ssa-sink-3.c: Ditto.
* gcc.dg/tree-ssa/ssa-sink-4.c: Ditto.
* gcc.dg/tree-ssa/ssa-sink-5.c: Ditto.
* gcc.dg/tree-ssa/ssa-sink-6.c: Ditto.
* gcc.dg/tree-ssa/ssa-sink-7.c: Ditto.
* gcc.dg/tree-ssa/ssa-sink-8.c: Ditto.
* gcc.dg/tree-ssa/ssa-sink-9.c: Ditto.
* gcc.dg/tree-ssa/ssa-sink-10.c: Ditto.
* gcc.dg/tree-ssa/ssa-sink-13.c: Ditto.
* gcc.dg/tree-ssa/ssa-sink-14.c: Ditto.
* gcc.dg/tree-ssa/ssa-sink-16.c: Ditto.
* gcc.dg/tree-ssa/ssa-sink-17.c: Ditto.
* gcc.dg/tree-ssa/ssa-sink-18.c: New.
17 files changed:
gcc/passes.def
gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-1.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-10.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-13.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-14.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-16.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-17.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-18.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-2.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-3.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-4.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-5.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-6.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-7.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-8.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-9.c
gcc/tree-ssa-sink.c