On Tue, Nov 1, 2011 at 1:46 AM, Teresa Johnson <tejohn...@google.com> wrote: > This patch is for google-main only. > > Tested with bootstrap and regression tests. > > Print unroll and peel factors along with loop source position under > -fopt-info. > > Teresa > > 2011-10-31 Teresa Johnson <tejohn...@google.com> > > * common.opt (fopt-info): Disable -fopt-info by default. > * loop-unroll.c (report_unroll_peel): New function. > (unroll_and_peel_loops): Call record_loop_exits for later use. > (peel_loops_completely): Print the loop source position in dump > info and emit note under -fopt-info. > (decide_unroll_and_peeling): Ditto. > (decide_peel_once_rolling): Record peel factor for use in note > emission. > (decide_peel_completely): Ditto. > * cfgloop.c (get_loop_location): New function. > * cfgloop.h (get_loop_location): Ditto. > * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Emit note > under -fopt-info. > > Index: tree-ssa-loop-ivcanon.c > =================================================================== > --- tree-ssa-loop-ivcanon.c (revision 180437) > +++ tree-ssa-loop-ivcanon.c (working copy) > @@ -52,6 +52,7 @@ > #include "flags.h" > #include "tree-inline.h" > #include "target.h" > +#include "diagnostic.h" > > /* Specifies types of loops that may be unrolled. */ > > @@ -443,6 +444,17 @@ > fprintf (dump_file, "Unrolled loop %d completely by factor %d.\n", > loop->num, (int) n_unroll); > > + if (flag_opt_info >= OPT_INFO_MIN) > + { > + location_t locus; > + locus = gimple_location (cond); > + > + inform (locus, "Completely Unroll loop by %d (execution count > %d, const iterations %d)", > + (int) n_unroll, > + (int) loop->header->count, > + (int) TREE_INT_CST_LOW(niter)); > + } > +
And this is exactly what I mean with code-duplication. Two lines above we already have "Unroled loop %d completely by factor %d", not only do you duplicate some diagnostic printing about this fact, you put in useless info (complete unroll by N of a loop executing M (?! that's surely N as well) times, const iterations O (?! that's surely N as well ...). Richard.