https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68398
--- Comment #7 from Jeffrey A. Law <law at gcc dot gnu.org> --- Author: law Date: Wed Jan 27 19:19:47 2016 New Revision: 232897 URL: https://gcc.gnu.org/viewcvs?rev=232897&root=gcc&view=rev Log: PR tree-optimization/68398 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter. (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise. * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths): Only count PHIs in the last block in the path. The others will const/copy propagate away. Add heuristic to allow more irreducible subloops to be created when it is likely profitable to do so. * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths): Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL check from within the loop. Use gsi_next_nondebug rather than gsi_next. PR tree-optimization/68398 * gcc.dg/tree-ssa/pr66752-3.c: Update expected output. * gcc.dg/tree-ssa/ssa-dom-thread-2c.c: Add extra statements on thread path to avoid new heuristic allowing more irreducible regions * gcc.dg/tree-ssa/ssa-dom-thread-2d.c: Likewise. * gcc.dg/tree-ssa/vrp46.c: Likewise. * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Update expected output. * gcc.dg/tree-ssa/ssa-dom-thread-2g.c: New test. * gcc.dg/tree-ssa/ssa-dom-thread-2h.c: Likewise. Added: trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2g.c trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2h.c - copied, changed from r232894, trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2d.c Modified: trunk/gcc/ChangeLog trunk/gcc/params.def trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/tree-ssa/pr66752-3.c trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2c.c trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2d.c trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c trunk/gcc/testsuite/gcc.dg/tree-ssa/vrp46.c trunk/gcc/tree-ssa-threadbackward.c