I used this recently to help reduce an aarch64 bug. No sense in not pushing it into the trunk.
Bootstrapped and regression tested on x86_64-linux-gnu. It may have been in an aarch64 bootstrap as well, I'm not entirely sure about that.
Installed on the trunk. Jeff
commit e9cce2b6bb65ddfcb99b32924f58e49b99ba2984 Author: law <law@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Tue Dec 22 03:09:08 2015 +0000 * dbgcnt.def (dom_unreachable_edges): New debug counter. * tree-ssa-dom.c: Include dbgcnt.h (dom_opt_dom_walker::before_dom_children): Handle the new counter. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231896 138bc75d-0d04-0410-961f-82ee72b054a4 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f1f1d69..9e3ab5a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-12-21 Jeff Law <l...@redhat.com> + + * dbgcnt.def (dom_unreachable_edges): New debug counter. + * tree-ssa-dom.c: Include dbgcnt.h + (dom_opt_dom_walker::before_dom_children): Handle the new counter. + 2015-12-21 Andrew Pinski <apin...@cavium.com> * config/aarch64/aarch64-option-extensions.def (LSE): Change diff --git a/gcc/dbgcnt.def b/gcc/dbgcnt.def index 583b16b..65f18fb 100644 --- a/gcc/dbgcnt.def +++ b/gcc/dbgcnt.def @@ -192,3 +192,4 @@ DEBUG_COUNTER (treepre_insert) DEBUG_COUNTER (tree_sra) DEBUG_COUNTER (vect_loop) DEBUG_COUNTER (vect_slp) +DEBUG_COUNTER (dom_unreachable_edges) diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c index 88fc517..1b689a0 100644 --- a/gcc/tree-ssa-dom.c +++ b/gcc/tree-ssa-dom.c @@ -44,6 +44,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-ssa-dom.h" #include "gimplify.h" #include "tree-cfgcleanup.h" +#include "dbgcnt.h" /* This file implements optimizations on the dominator tree. */ @@ -1369,6 +1370,9 @@ dom_opt_dom_walker::before_dom_children (basic_block bb) /* Now prepare to process dominated blocks. */ record_edge_info (bb); cprop_into_successor_phis (bb, m_const_and_copies); + if (taken_edge && !dbg_cnt (dom_unreachable_edges)) + return NULL; + return taken_edge; }