X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Ftree-ssa-loop-ch.c;h=3033c9082ef40a5483c0271b787d48f71d6e2612;hb=97bb28494500b9d33b0aba1d9b429a753aab8ace;hp=bcbc514dfbf28be1ff909af9413981ec0f0ec7ac;hpb=7194de72e1651831d842524a0d0a01f64f8f98ed;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/tree-ssa-loop-ch.c b/gcc/tree-ssa-loop-ch.c index bcbc514dfbf..3033c9082ef 100644 --- a/gcc/tree-ssa-loop-ch.c +++ b/gcc/tree-ssa-loop-ch.c @@ -87,7 +87,7 @@ should_duplicate_loop_header_p (basic_block header, struct loop *loop, if (get_call_expr_in (last)) return false; - *limit -= estimate_num_insns (last); + *limit -= estimate_num_insns (last, &eni_size_weights); if (*limit < 0) return false; } @@ -123,7 +123,7 @@ do_while_loop_p (struct loop *loop) static unsigned int copy_loop_headers (void) { - unsigned i; + loop_iterator li; struct loop *loop; basic_block header; edge exit, entry; @@ -144,14 +144,11 @@ copy_loop_headers (void) copied_bbs = XNEWVEC (basic_block, n_basic_blocks); bbs_size = n_basic_blocks; - for (i = 1; i < current_loops->num; i++) + FOR_EACH_LOOP (li, loop, 0) { /* Copy at most 20 insns. */ int limit = 20; - loop = current_loops->parray[i]; - if (!loop) - continue; header = loop->header; /* If the loop is already a do-while style one (either because it was