2018-10-23 Richard Biener <rguenther@suse.de>
commita2c2432d39c1d7a95454e97ba60ff66dde2e08d4
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 23 Oct 2018 11:34:56 +0000 (23 11:34 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 23 Oct 2018 11:34:56 +0000 (23 11:34 +0000)
tree51747567d200a1864458cc228e3655d135fb351a
parent0e9ba648a490bab70d311889f02bbf5b16eb81d2
2018-10-23  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87105
PR tree-optimization/87608
* passes.def (pass_all_early_optimizations): Add early phi-opt
after dce.
* tree-ssa-phiopt.c (value_replacement): Ignore NOPs and predicts in
addition to debug stmts.
(tree_ssa_phiopt_worker): Add early_p argument, do only min/max
and abs replacement early.
* tree-cfg.c (gimple_empty_block_p): Likewise.

* g++.dg/tree-ssa/phiopt-1.C: New testcase.
g++.dg/vect/slp-pr87105.cc: Likewise.
* g++.dg/tree-ssa/pr21463.C: Scan phiopt2 because this testcase
relies on phiprop run before.
* g++.dg/tree-ssa/pr30738.C: Likewise.
* g++.dg/tree-ssa/pr57380.C: Likewise.
* gcc.dg/tree-ssa/pr84859.c: Likewise.
* gcc.dg/tree-ssa/pr45397.c: Scan phiopt2 because phiopt1 is
confused by copies in the IL left by EVRP.
* gcc.dg/tree-ssa/phi-opt-5.c: Likewise, this time confused
by predictors.
* gcc.dg/tree-ssa/phi-opt-12.c: Scan phiopt2.
* gcc.dg/pr24574.c: Likewise.
* g++.dg/tree-ssa/pr86544.C: Scan phiopt4.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265421 138bc75d-0d04-0410-961f-82ee72b054a4
22 files changed:
gcc/ChangeLog
gcc/passes.def
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/tree-ssa/phiopt-1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/tree-ssa/pr21463.C
gcc/testsuite/g++.dg/tree-ssa/pr30738.C
gcc/testsuite/g++.dg/tree-ssa/pr57380.C
gcc/testsuite/g++.dg/tree-ssa/pr86544.C
gcc/testsuite/g++.dg/vect/slp-pr87105.cc [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr24574.c
gcc/testsuite/gcc.dg/tree-ssa/20040514-1.c
gcc/testsuite/gcc.dg/tree-ssa/20040518-1.c
gcc/testsuite/gcc.dg/tree-ssa/phi-opt-12.c
gcc/testsuite/gcc.dg/tree-ssa/phi-opt-5.c
gcc/testsuite/gcc.dg/tree-ssa/phi-opt-6.c
gcc/testsuite/gcc.dg/tree-ssa/phi-opt-8.c
gcc/testsuite/gcc.dg/tree-ssa/popcount3.c
gcc/testsuite/gcc.dg/tree-ssa/pr45397.c
gcc/testsuite/gcc.dg/tree-ssa/pr84859.c
gcc/testsuite/gcc.dg/uninit-15.c
gcc/tree-cfg.c
gcc/tree-ssa-phiopt.c