> Index: tree-ssa-loop-ivcanon.c > > =================================================================== > > --- tree-ssa-loop-ivcanon.c (revision 234516) > > +++ tree-ssa-loop-ivcanon.c (working copy) > > @@ -935,7 +935,7 @@ try_peel_loop (struct loop *loop, > > edge exit, tree niter, > > HOST_WIDE_INT maxiter) > > { > > - int npeel; > > + HOST_WIDE_INT npeel; > > struct loop_size size; > > int peeled_size; > > sbitmap wont_exit; > > @@ -990,7 +990,7 @@ try_peel_loop (struct loop *loop, > > { > > if (dump_file) > > fprintf (dump_file, "Not peeling: rolls too much " > > - "(%i + 1 > --param max-peel-times)\n", npeel); > > + "(%i + 1 > --param max-peel-times)\n", (int) npeel); > > Use "(" HOST_WIDE_INT_PRINT_DEC " + 1 > ....
OK, same code exists in the unroller code. I will update both. > > > return false; > > } > > npeel++; > > @@ -998,7 +998,7 @@ try_peel_loop (struct loop *loop, > > /* Check peeled loops size. */ > > tree_estimate_loop_size (loop, exit, NULL, &size, > > PARAM_VALUE (PARAM_MAX_PEELED_INSNS)); > > - if ((peeled_size = estimated_peeled_sequence_size (&size, npeel)) > > + if ((peeled_size = estimated_peeled_sequence_size (&size, (int) npeel)) > > ^^^ suggests estimated_peeled_sequence_size needs adjustment as well, > otherwise you'll get bogus param check. This is safe - npeel is capped by the previous test about rolling too much to small value. It is basically all about the first test not passing for large values that converts to small integers. Honza