aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2016-01-19 16:03:26 -0700
committerJeff Law <law@gcc.gnu.org>2016-01-19 16:03:26 -0700
commit89d0fecd2d6eb461311231c826a628a0a388516e (patch)
treeb5448037ec621e4f96bf37b062c57226e8ae4438 /gcc
parent4a8c29cc7af55c3278bea0912e52b8739d274480 (diff)
downloadgcc-89d0fecd2d6eb461311231c826a628a0a388516e.zip
gcc-89d0fecd2d6eb461311231c826a628a0a388516e.tar.gz
gcc-89d0fecd2d6eb461311231c826a628a0a388516e.tar.bz2
re PR tree-optimization/69347 (excessive compile time with -O2)
PR middle-end/69347 * tree-ssa-threadbackwards.c (fsm_find_control_statement_thread_paths): Do not try to lookup FSM paths for SSA_NAMEs appearing in abnormal PHIs. From-SVN: r232593
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/tree-ssa-threadbackward.c5
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f41b2c6..2930a8f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2016-01-19 Jeff Law <law@redhat.com>
+
+ PR middle-end/69347
+ * tree-ssa-threadbackwards.c
+ (fsm_find_control_statement_thread_paths): Do not try to lookup
+ FSM paths for SSA_NAMEs appearing in abnormal PHIs.
+
2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
* doc/lto.texi: Remove text that says only Gold has linker plugin
diff --git a/gcc/tree-ssa-threadbackward.c b/gcc/tree-ssa-threadbackward.c
index 8c99f6f..8d8aa30 100644
--- a/gcc/tree-ssa-threadbackward.c
+++ b/gcc/tree-ssa-threadbackward.c
@@ -99,6 +99,11 @@ fsm_find_control_statement_thread_paths (tree name,
vec<basic_block, va_gc> *&path,
bool seen_loop_phi)
{
+ /* If NAME appears in an abnormal PHI, then don't try to trace its
+ value back through PHI nodes. */
+ if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name))
+ return;
+
gimple *def_stmt = SSA_NAME_DEF_STMT (name);
basic_block var_bb = gimple_bb (def_stmt);