Helps to narrow down some bugs.
Bootstrapped / tested on x86_64-unknown-linux-gnu, applied. Richard. 2019-11-07 Richard Biener <rguent...@suse.de> * dbgcnt.def (gimple_unroll): New. * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Check gimple_unroll debug counter before applying transform. (try_peel_loop): Likewise. Index: gcc/dbgcnt.def =================================================================== --- gcc/dbgcnt.def (revision 277873) +++ gcc/dbgcnt.def (working copy) @@ -198,3 +198,4 @@ DEBUG_COUNTER (vect_slp) DEBUG_COUNTER (dom_unreachable_edges) DEBUG_COUNTER (match) DEBUG_COUNTER (store_merging) +DEBUG_COUNTER (gimple_unroll) Index: gcc/tree-ssa-loop-ivcanon.c =================================================================== --- gcc/tree-ssa-loop-ivcanon.c (revision 277873) +++ gcc/tree-ssa-loop-ivcanon.c (working copy) @@ -64,6 +64,7 @@ along with GCC; see the file COPYING3. #include "tree-cfgcleanup.h" #include "builtins.h" #include "tree-ssa-sccvn.h" +#include "dbgcnt.h" /* Specifies types of loops that may be unrolled. */ @@ -884,6 +887,9 @@ try_unroll_loop_completely (class loop * } } + if (!dbg_cnt (gimple_unroll)) + return false; + initialize_original_copy_tables (); auto_sbitmap wont_exit (n_unroll + 1); if (exit && niter @@ -1074,6 +1080,9 @@ try_peel_loop (class loop *loop, return false; } + if (!dbg_cnt (gimple_unroll)) + return false; + /* Duplicate possibly eliminating the exits. */ initialize_original_copy_tables (); auto_sbitmap wont_exit (npeel + 1);