2018-09-13 Richard Biener <rguenther@suse.de>
commit2ac8e016167d6a38556b99c5cd74f56ae60a4d70
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Sep 2018 14:15:41 +0000 (13 14:15 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Sep 2018 14:15:41 +0000 (13 14:15 +0000)
treea1bc2b4e51f781ccbbd40d033593d3e6d0561f66
parenta9267d6ad6bc6afe841216e3075dcec48b2e9eba
2018-09-13  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87263
* tree-ssa-sccvn.c (visit_phi): Revert some earlier changes.
(struct unwind_state): Add max_rpo field.
(do_rpo_vn): Allow up-to-date loop state to be used when not iterating.
Compute max_rpo, the max RPO number a block can be backwards reached
from.  Re-write non-iterating mode to a RPO ordered worklist approach,
separating it from the iterating mode.

* gcc.dg/torture/pr87263.c: New testcase.
* gcc.dg/torture/ssa-fre-2.c: Likewise.
* gcc.dg/torture/ssa-fre-3.c: Likewise.
* gcc.dg/torture/ssa-fre-4.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264273 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr87263.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/ssa-fre-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/ssa-fre-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/ssa-fre-4.c [new file with mode: 0644]
gcc/tree-ssa-sccvn.c