diff options
author | Jeff Law <law@gcc.gnu.org> | 2015-11-06 16:26:20 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2015-11-06 16:26:20 -0700 |
commit | b9e59e4f11bc85b72167f93d1f356ff77074af01 (patch) | |
tree | 7996214e64ec8ce0a80f2a8768057c4e391c0fe0 /gcc/cfg-flags.def | |
parent | a6fa947e8261399636817b840fd0fc7c202742e6 (diff) | |
download | gcc-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.def | 7 |
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 /* |