passes.def (pass_split_crit_edges): Remove instance before PRE.
authorRichard Biener <rguenther@suse.de>
Thu, 7 Sep 2017 07:44:43 +0000 (07:44 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 7 Sep 2017 07:44:43 +0000 (07:44 +0000)
commita7976089dba5e22778e4496e1b86e022241f9d69
tree0a6114aa3b7e88085de18911eacd2d3276ca52ea
parente76b247239756b547eaa51d9fa0629416a293269
passes.def (pass_split_crit_edges): Remove instance before PRE.

2017-09-07  Richard Biener  <rguenther@suse.de>

* passes.def (pass_split_crit_edges): Remove instance before PRE.
* tree-ssa-pre.c (pass_pre::execute): Instead manually split
critical edges here, after loop init.
(pass_data_pre): Remove PROP_no_crit_edges flags.
* tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
for valueization of call args to avoid leaking VN_TOP.
(visit_use): Assert we do not visit default defs.
(init_scc_vn): Use build_decl for VN_TOP to make name nicer.
Use error_mark_node to more easily detect leaking VN_TOP.
All default-defs are varying, not VN_TOP.  Mark them visited.
(run_scc_vn): Make code match comment.

* gcc.dg/tree-ssa/ssa-thread-12.c: XFAIL third FSM threading
opportunity.

From-SVN: r251833
gcc/ChangeLog
gcc/passes.def
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-12.c
gcc/tree-ssa-pre.c
gcc/tree-ssa-sccvn.c