[PATCH] Allow vrp to thread across backedges using FSM threader
authorJeff Law <law@gcc.gnu.org>
Fri, 6 Nov 2015 23:26:20 +0000 (16:26 -0700)
committerJeff Law <law@gcc.gnu.org>
Fri, 6 Nov 2015 23:26:20 +0000 (16:26 -0700)
commitb9e59e4f11bc85b72167f93d1f356ff77074af01
tree7996214e64ec8ce0a80f2a8768057c4e391c0fe0
parenta6fa947e8261399636817b840fd0fc7c202742e6
[PATCH] Allow vrp to thread across backedges using FSM threader

* cfg-flags.def (IGNORE): New edge flag.
* tree-vrp.c (identify_jump_threads): Mark and clear edges
scheduled for removal with EDGE_IGNORE around call into
jump threader.  Do no thread across edges with EDGE_IGNORE,
but do allow threading across those with EDGE_DFS_BACK.

* gcc.dg/tree-ssa/ssa-dom-thread-7.c: Adjust to look for
realized jump threads.
* gcc.dg/tree-ssa-pr66752-3.c: Look in vrp1 dump for jump
threads rather than dom1 dump.

From-SVN: r229902
gcc/ChangeLog
gcc/cfg-flags.def
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/pr66752-3.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c
gcc/tree-vrp.c