I wish there is better heuristic in the future. For now it is ok. David
On Wed, Sep 25, 2013 at 2:48 PM, Dehao Chen <de...@google.com> wrote: > This patch disables aggressive loop peeling when profile is available. > This prevents extensive code bloat which leads to increased i-cache > misses. > > Bootstrapped and passed regression tests. > > OK for google-4_8? > > Thanks, > Dehao > > Index: gcc/loop-unroll.c > =================================================================== > --- gcc/loop-unroll.c (revision 202926) > +++ gcc/loop-unroll.c (working copy) > @@ -1574,8 +1574,7 @@ decide_peel_simple (struct loop *loop, int flags) > peeling it is not the case. Also a function call inside loop is > also branch from branch prediction POV (and probably better reason > to not unroll/peel). */ > - if (desc->num_branches > 1 > - && profile_status != PROFILE_READ) > + if (desc->num_branches > 1) > { > if (dump_file) > fprintf (dump_file, ";; Not peeling, contains branches\n");