aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfg-flags.def
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>2015-11-06 16:26:20 -0700
committerJeff Law <law@gcc.gnu.org>2015-11-06 16:26:20 -0700
commitb9e59e4f11bc85b72167f93d1f356ff77074af01 (patch)
tree7996214e64ec8ce0a80f2a8768057c4e391c0fe0 /gcc/cfg-flags.def
parenta6fa947e8261399636817b840fd0fc7c202742e6 (diff)
downloadgcc-b9e59e4f11bc85b72167f93d1f356ff77074af01.zip
gcc-b9e59e4f11bc85b72167f93d1f356ff77074af01.tar.gz
gcc-b9e59e4f11bc85b72167f93d1f356ff77074af01.tar.bz2
[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
Diffstat (limited to 'gcc/cfg-flags.def')
-rw-r--r--gcc/cfg-flags.def7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/cfg-flags.def b/gcc/cfg-flags.def
index eedcd69..e2bfbed 100644
--- a/gcc/cfg-flags.def
+++ b/gcc/cfg-flags.def
@@ -78,7 +78,7 @@ DEF_BASIC_BLOCK_FLAG(RTL, 9)
DEF_BASIC_BLOCK_FLAG(FORWARDER_BLOCK, 10)
/* Set on blocks that cannot be threaded through.
- Only used in cfgcleanup.c. */
+ Only used for jump threading. */
DEF_BASIC_BLOCK_FLAG(NONTHREADABLE_BLOCK, 11)
/* Set on blocks that were modified in some way. This bit is set in
@@ -177,6 +177,11 @@ DEF_EDGE_FLAG(TM_UNINSTRUMENTED, 15)
/* Abort (over) edge out of a GIMPLE_TRANSACTION statement. */
DEF_EDGE_FLAG(TM_ABORT, 16)
+/* An edge we should ignore. It should be entirely local to
+ passes. ie, it is never set on any edge upon the completion
+ of any pass. */
+DEF_EDGE_FLAG(IGNORE, 17)
+
#endif
/*