Lines Matching refs:loops

38    optimizations on innermost loops (with single exception) because
47 -- complete peeling of once-rolling loops; this is the above mentioned
50 -- complete peeling of loops that roll (small) constant times.
51 -- simple peeling of first iterations of loops that do not roll much
53 -- unrolling of loops that roll constant times; this is almost always
55 -- unrolling of loops that roll number of times that we can compute
58 -- simple unrolling of remaining loops; this is performed only if we
117 static void decide_unrolling_and_peeling (struct loops *, int);
118 static void peel_loops_completely (struct loops *, int);
125 static void peel_loop_simple (struct loops *, struct loop *);
126 static void peel_loop_completely (struct loops *, struct loop *);
127 static void unroll_loop_stupid (struct loops *, struct loop *);
128 static void unroll_loop_constant_iterations (struct loops *, struct loop *);
129 static void unroll_loop_runtime_iterations (struct loops *, struct loop *);
145 unroll_and_peel_loops (struct loops *loops, int flags)
152 peel_loops_completely (loops, flags);
155 decide_unrolling_and_peeling (loops, flags);
157 loop = loops->tree_root;
161 /* Scan the loops, inner ones first. */
162 while (loop != loops->tree_root)
181 peel_loop_simple (loops, loop);
184 unroll_loop_constant_iterations (loops, loop);
187 unroll_loop_runtime_iterations (loops, loop);
190 unroll_loop_stupid (loops, loop);
202 verify_loop_structure (loops);
234 peel_loops_completely (struct loops *loops, int flags)
239 /* Scan the loops, the inner ones first. */
240 for (i = loops->num - 1; i > 0; i--)
242 loop = loops->parray[i];
261 peel_loop_completely (loops, loop);
264 verify_loop_structure (loops);
272 decide_unrolling_and_peeling (struct loops *loops, int flags)
274 struct loop *loop = loops->tree_root, *next;
279 /* Scan the loops, inner ones first. */
280 while (loop != loops->tree_root)
315 /* Skip non-innermost loops. */
360 /* Check for simple loops. */
392 /* Skip non-innermost loops. */
430 /* Check for simple loops. */
478 peel_loop_completely (struct loops *loops, struct loop *loop)
507 loops, npeel,
526 remove_path (loops, remove_edges[i]);
535 remove_path (loops, ein);
571 /* Skip big loops. */
579 /* Check for simple loops. */
661 unroll_loop_constant_iterations (struct loops *loops, struct loop *loop)
693 in the first copy, so that the loops that start with test
708 loops, exit_mod,
747 loops, exit_mod + 1,
774 loops, max_unroll,
814 remove_path (loops, remove_edges[i]);
851 /* Skip big loops. */
859 /* Check for simple loops. */
934 unroll_loop_runtime_iterations (struct loops *loops, struct loop *loop)
1029 loops, 1,
1046 loops, 1,
1097 loops, max_unroll,
1134 remove_path (loops, remove_edges[i]);
1185 /* Skip big loops. */
1193 /* Check for simple loops. */
1204 /* Do not simply peel loops with branches inside -- it increases number
1264 peel_loop_simple (struct loops *loops, struct loop *loop)
1281 loops, npeel, wont_exit,
1344 /* Skip big loops. */
1352 /* Check for simple loops. */
1363 /* Do not unroll loops with branches inside -- it increases number
1414 unroll_loop_stupid (struct loops *loops, struct loop *loop)
1432 loops, nunroll, wont_exit,