diff options
author | Ian Lance Taylor <iant@golang.org> | 2021-09-13 10:37:49 -0700 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2021-09-13 10:37:49 -0700 |
commit | e252b51ccde010cbd2a146485d8045103cd99533 (patch) | |
tree | e060f101cdc32bf5e520de8e5275db9d4236b74c /gcc/loop-unroll.c | |
parent | f10c7c4596dda99d2ee872c995ae4aeda65adbdf (diff) | |
parent | 104c05c5284b7822d770ee51a7d91946c7e56d50 (diff) | |
download | gcc-e252b51ccde010cbd2a146485d8045103cd99533.zip gcc-e252b51ccde010cbd2a146485d8045103cd99533.tar.gz gcc-e252b51ccde010cbd2a146485d8045103cd99533.tar.bz2 |
Merge from trunk revision 104c05c5284b7822d770ee51a7d91946c7e56d50.
Diffstat (limited to 'gcc/loop-unroll.c')
-rw-r--r-- | gcc/loop-unroll.c | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/gcc/loop-unroll.c b/gcc/loop-unroll.c index 8b6fcf5..2b31faf 100644 --- a/gcc/loop-unroll.c +++ b/gcc/loop-unroll.c @@ -214,10 +214,8 @@ report_unroll (class loop *loop, dump_location_t locus) static void decide_unrolling (int flags) { - class loop *loop; - /* Scan the loops, inner ones first. */ - FOR_EACH_LOOP (loop, LI_FROM_INNERMOST) + for (auto loop : loops_list (cfun, LI_FROM_INNERMOST)) { loop->lpt_decision.decision = LPT_NONE; dump_user_location_t locus = get_loop_location (loop); @@ -278,14 +276,13 @@ decide_unrolling (int flags) void unroll_loops (int flags) { - class loop *loop; bool changed = false; /* Now decide rest of unrolling. */ decide_unrolling (flags); /* Scan the loops, inner ones first. */ - FOR_EACH_LOOP (loop, LI_FROM_INNERMOST) + for (auto loop : loops_list (cfun, LI_FROM_INNERMOST)) { /* And perform the appropriate transformations. */ switch (loop->lpt_decision.decision) @@ -884,7 +881,7 @@ unroll_loop_runtime_iterations (class loop *loop) { rtx old_niter, niter, tmp; rtx_insn *init_code, *branch_code; - unsigned i, j; + unsigned i; profile_probability p; basic_block preheader, *body, swtch, ezc_swtch = NULL; int may_exit_copy; @@ -908,15 +905,9 @@ unroll_loop_runtime_iterations (class loop *loop) body = get_loop_body (loop); for (i = 0; i < loop->num_nodes; i++) { - vec<basic_block> ldom; - basic_block bb; - - ldom = get_dominated_by (CDI_DOMINATORS, body[i]); - FOR_EACH_VEC_ELT (ldom, j, bb) + for (basic_block bb : get_dominated_by (CDI_DOMINATORS, body[i])) if (!flow_bb_inside_loop_p (loop, bb)) dom_bbs.safe_push (bb); - - ldom.release (); } free (body); @@ -1013,7 +1004,7 @@ unroll_loop_runtime_iterations (class loop *loop) gcc_assert (ok); /* Create item for switch. */ - j = n_peel - i - (extra_zero_check ? 0 : 1); + unsigned j = n_peel - i - (extra_zero_check ? 0 : 1); p = profile_probability::always ().apply_scale (1, i + 2); preheader = split_edge (loop_preheader_edge (loop)); |