From 89d0fecd2d6eb461311231c826a628a0a388516e Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Tue, 19 Jan 2016 16:03:26 -0700 Subject: [PATCH] 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 --- gcc/ChangeLog | 7 +++++++ gcc/tree-ssa-threadbackward.c | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f41b2c626dbc..2930a8f6119f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2016-01-19 Jeff Law + + 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 * 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 8c99f6f99b49..8d8aa303f225 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 *&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); -- 2.47.2