Home
last modified time | relevance | path

Searched refs:loop (Results 1 – 25 of 1008) sorted by relevance

12345678910>>...41

/openbsd-src/gnu/gcc/gcc/
H A Dcfgloop.c44 static int flow_loop_level_compute (struct loop *);
46 static void establish_preds (struct loop *);
96 flow_loop_nested_p (const struct loop *outer, const struct loop *loop) in flow_loop_nested_p() argument
98 return (loop->depth > outer->depth in flow_loop_nested_p()
99 && loop->pred[outer->depth] == outer); in flow_loop_nested_p()
105 struct loop *
106 superloop_at_depth (struct loop *loop, unsigned depth) in superloop_at_depth() argument
108 gcc_assert (depth <= (unsigned) loop->depth); in superloop_at_depth()
110 if (depth == (unsigned) loop->depth) in superloop_at_depth()
111 return loop; in superloop_at_depth()
[all …]
H A Dcfgloop.h59 struct loop struct
86 struct loop **pred; argument
93 struct loop *outer; argument
96 struct loop *inner; argument
99 struct loop *next; argument
102 struct loop *copy; argument
157 struct loop **parray;
160 struct loop *tree_root;
185 void (*)(const struct loop *, FILE *, int), int);
186 extern void flow_loop_dump (const struct loop *, FILE *,
[all …]
H A Dcfgloopmanip.c34 static void duplicate_subloops (struct loops *, struct loop *, struct loop *);
35 static void copy_loops_to (struct loops *, struct loop **, int,
36 struct loop *);
43 static void add_loop (struct loops *, struct loop *);
44 static void fix_loop_placements (struct loops *, struct loop *, bool *);
47 static void place_new_loop (struct loops *, struct loop *);
48 static void scale_loop_frequencies (struct loop *, int, int);
49 static basic_block create_preheader (struct loop *, int);
50 static void unloop (struct loops *, struct loop *, bool *);
104 struct loop *loop = loops->tree_root, *act; in fix_bb_placement() local
[all …]
H A Dtree-ssa-loop-ivcanon.c73 create_canonical_iv (struct loop *loop, edge exit, tree niter) in create_canonical_iv() argument
82 fprintf (dump_file, "Added canonical iv to loop %d, ", loop->num); in create_canonical_iv()
104 NULL_TREE, loop, in create_canonical_iv()
117 tree_num_loop_insns (struct loop *loop) in tree_num_loop_insns() argument
119 basic_block *body = get_loop_body (loop); in tree_num_loop_insns()
123 for (i = 0; i < loop->num_nodes; i++) in tree_num_loop_insns()
163 struct loop *loop, in try_unroll_loop_completely() argument
170 if (loop->inner) in try_unroll_loop_completely()
186 ninsns = tree_num_loop_insns (loop); in try_unroll_loop_completely()
206 fprintf (dump_file, "Not unrolling loop %d:\n", loop->num); in try_unroll_loop_completely()
[all …]
H A Dtree-if-conv.c106 static tree tree_if_convert_stmt (struct loop *loop, tree, tree,
108 static void tree_if_convert_cond_expr (struct loop *, tree, tree,
110 static bool if_convertible_phi_p (struct loop *, basic_block, tree);
111 static bool if_convertible_modify_expr_p (struct loop *, basic_block, tree);
112 static bool if_convertible_stmt_p (struct loop *, basic_block, tree);
113 static bool if_convertible_bb_p (struct loop *, basic_block, basic_block);
114 static bool if_convertible_loop_p (struct loop *, bool);
116 static tree add_to_dst_predicate_list (struct loop * loop, edge,
119 static void clean_predicate_lists (struct loop *loop);
120 static basic_block find_phi_replacement_condition (struct loop *loop,
[all …]
H A Dloop-unroll.c119 static void decide_peel_simple (struct loop *, int);
120 static void decide_peel_once_rolling (struct loop *, int);
121 static void decide_peel_completely (struct loop *, int);
122 static void decide_unroll_stupid (struct loop *, int);
123 static void decide_unroll_constant_iterations (struct loop *, int);
124 static void decide_unroll_runtime_iterations (struct loop *, 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 *);
[all …]
H A Dtree-ssa-loop-unswitch.c76 static struct loop *tree_unswitch_loop (struct loops *, struct loop *, basic_block,
78 static bool tree_unswitch_single_loop (struct loops *, struct loop *, int);
79 static tree tree_may_unswitch_on (basic_block, struct loop *);
87 struct loop *loop; in tree_ssa_unswitch_loops() local
96 loop = loops->parray[i]; in tree_ssa_unswitch_loops()
97 if (!loop) in tree_ssa_unswitch_loops()
100 if (loop->inner) in tree_ssa_unswitch_loops()
103 changed |= tree_unswitch_single_loop (loops, loop, 0); in tree_ssa_unswitch_loops()
115 tree_may_unswitch_on (basic_block bb, struct loop *loop) in tree_may_unswitch_on() argument
132 && flow_bb_inside_loop_p (loop, def_bb)) in tree_may_unswitch_on()
[all …]
H A Dtree-ssa-loop-im.c78 struct loop *max_loop; /* The outermost loop in that the statement
81 struct loop *tgt_loop; /* The loop out of that we want to move the
84 struct loop *always_executed_in;
141 #define ALWAYS_EXECUTED_IN(BB) ((struct loop *) (BB)->aux)
300 static struct loop *
301 outermost_invariant_loop (tree def, struct loop *loop) in outermost_invariant_loop() argument
305 struct loop *max_loop; in outermost_invariant_loop()
308 return superloop_at_depth (loop, 1); in outermost_invariant_loop()
313 return superloop_at_depth (loop, 1); in outermost_invariant_loop()
315 max_loop = find_common_loop (loop, def_bb->loop_father); in outermost_invariant_loop()
[all …]
H A Dtree-scalar-evolution.c256 static tree analyze_scalar_evolution_1 (struct loop *, tree, tree);
257 static tree resolve_mixers (struct loop *, tree);
377 struct loop *def_loop = loop_containing_stmt (def); in chrec_contains_symbols_defined_in_loop()
378 struct loop *loop = current_loops->parray[loop_nb]; in chrec_contains_symbols_defined_in_loop() local
383 if (loop == def_loop || flow_loop_nested_p (loop, def_loop)) in chrec_contains_symbols_defined_in_loop()
459 compute_overall_effect_of_inner_loop (struct loop *loop, tree evolution_fn) in compute_overall_effect_of_inner_loop() argument
468 if (CHREC_VARIABLE (evolution_fn) >= (unsigned) loop->num) in compute_overall_effect_of_inner_loop()
470 struct loop *inner_loop = in compute_overall_effect_of_inner_loop()
491 return compute_overall_effect_of_inner_loop (loop, res); in compute_overall_effect_of_inner_loop()
499 else if (no_evolution_in_loop_p (evolution_fn, loop->num, &val) && val) in compute_overall_effect_of_inner_loop()
[all …]
H A Dtree-vectorizer.c152 static struct loop *slpeel_tree_duplicate_loop_to_edge_cfg
153 (struct loop *, struct loops *, edge);
155 (struct loop *, struct loop *, bool after);
157 (edge, struct loop *, bool, basic_block *, bitmap *);
159 (edge, struct loop *, bool, basic_block *);
164 static void rename_variables_in_loop (struct loop *);
228 struct loop *loop = bb->loop_father; in rename_variables_in_bb() local
240 if (!flow_bb_inside_loop_p (loop, e->dest)) in rename_variables_in_bb()
251 rename_variables_in_loop (struct loop *loop) in rename_variables_in_loop() argument
256 bbs = get_loop_body (loop); in rename_variables_in_loop()
[all …]
H A Dloop-unswitch.c82 static struct loop *unswitch_loop (struct loops *, struct loop *,
84 static void unswitch_single_loop (struct loops *, struct loop *, rtx, int);
85 static rtx may_unswitch_on (basic_block, struct loop *, rtx *);
143 struct loop *loop; in unswitch_loops() local
151 loop = loops->parray[i]; in unswitch_loops()
152 if (!loop) in unswitch_loops()
155 if (loop->inner) in unswitch_loops()
158 unswitch_single_loop (loops, loop, NULL_RTX, 0); in unswitch_loops()
173 may_unswitch_on (basic_block bb, struct loop *loop, rtx *cinsn) in may_unswitch_on() argument
187 if (!flow_bb_inside_loop_p (loop, EDGE_SUCC (bb, 0)->dest) in may_unswitch_on()
[all …]
H A Dtree-ssa-loop-ch.c51 should_duplicate_loop_header_p (basic_block header, struct loop *loop, in should_duplicate_loop_header_p() argument
65 if (flow_bb_inside_loop_p (loop, EDGE_SUCC (header, 0)->dest) in should_duplicate_loop_header_p()
66 && flow_bb_inside_loop_p (loop, EDGE_SUCC (header, 1)->dest)) in should_duplicate_loop_header_p()
71 if (header != loop->header && !single_pred_p (header)) in should_duplicate_loop_header_p()
101 do_while_loop_p (struct loop *loop) in do_while_loop_p() argument
103 tree stmt = last_stmt (loop->latch); in do_while_loop_p()
111 stmt = last_and_only_stmt (loop->header); in do_while_loop_p()
128 struct loop *loop; in copy_loop_headers() local
153 loop = loops->parray[i]; in copy_loop_headers()
154 if (!loop) in copy_loop_headers()
[all …]
H A Dtree-ssa-loop-niter.c907 simplify_using_initial_conditions (struct loop *loop, tree expr, in simplify_using_initial_conditions() argument
921 for (bb = loop->header; in simplify_using_initial_conditions()
955 simplify_using_outer_evolutions (struct loop *loop, tree expr) in simplify_using_outer_evolutions() argument
970 e0 = simplify_using_outer_evolutions (loop, TREE_OPERAND (expr, 0)); in simplify_using_outer_evolutions()
974 e1 = simplify_using_outer_evolutions (loop, TREE_OPERAND (expr, 1)); in simplify_using_outer_evolutions()
980 e2 = simplify_using_outer_evolutions (loop, TREE_OPERAND (expr, 2)); in simplify_using_outer_evolutions()
998 e = instantiate_parameters (loop, expr); in simplify_using_outer_evolutions()
1008 loop_only_exit_p (struct loop *loop, edge exit) in loop_only_exit_p() argument
1015 if (exit != loop->single_exit) in loop_only_exit_p()
1018 body = get_loop_body (loop); in loop_only_exit_p()
[all …]
H A Dtree-ssa-loop-manip.c51 create_iv (tree base, tree step, tree var, struct loop *loop, in create_iv() argument
58 edge pe = loop_preheader_edge (loop); in create_iv()
118 stmt = create_phi_node (vb, loop->header); in create_iv()
120 add_phi_arg (stmt, initial, loop_preheader_edge (loop)); in create_iv()
121 add_phi_arg (stmt, va, loop_latch_edge (loop)); in create_iv()
131 struct loop *def_loop; in add_exit_phis_edge()
230 struct loop *def_loop; in find_uses_to_rename_use()
482 struct loop *loop_c; in bsi_insert_on_edge_immediate_loop()
505 ip_end_pos (struct loop *loop) in ip_end_pos() argument
507 return loop->latch; in ip_end_pos()
[all …]
H A Dloop-invariant.c61 struct loop *outermost_exit; /* The outermost exit of the loop. */
509 compute_always_reached (struct loop *loop, basic_block *body, in compute_always_reached() argument
514 for (i = 0; i < loop->num_nodes; i++) in compute_always_reached()
516 if (dominated_by_p (CDI_DOMINATORS, loop->latch, body[i])) in compute_always_reached()
529 find_exits (struct loop *loop, basic_block *body, in find_exits() argument
535 struct loop *outermost_exit = loop, *aexit; in find_exits()
539 for (i = 0; i < loop->num_nodes; i++) in find_exits()
541 if (body[i]->loop_father == loop) in find_exits()
556 if (flow_bb_inside_loop_p (loop, e->dest)) in find_exits()
579 if (aexit != loop) in find_exits()
[all …]
/openbsd-src/gnu/usr.bin/gcc/gcc/
H A Dcfgloop.c34 static void flow_loop_entry_edges_find PARAMS ((struct loop *));
35 static void flow_loop_exit_edges_find PARAMS ((struct loop *));
36 static int flow_loop_nodes_find PARAMS ((basic_block, struct loop *));
37 static void flow_loop_pre_header_scan PARAMS ((struct loop *));
40 static int flow_loop_level_compute PARAMS ((struct loop *));
47 static void flow_loop_free PARAMS ((struct loop *));
96 flow_loop_nested_p (outer, loop) in flow_loop_nested_p() argument
97 const struct loop *outer; in flow_loop_nested_p()
98 const struct loop *loop;
100 return loop->depth > outer->depth
[all …]
H A Dloop.c167 struct loop **uid_loop;
240 static void mark_loop_jump PARAMS ((rtx, struct loop *));
241 static void prescan_loop PARAMS ((struct loop *));
243 static int consec_sets_invariant_p PARAMS ((const struct loop *,
249 static int loop_reg_used_before_p PARAMS ((const struct loop *, rtx, rtx));
250 static void scan_loop PARAMS ((struct loop*, int));
260 static int num_unmoved_movables PARAMS ((const struct loop *));
265 static void move_movables PARAMS ((struct loop *loop, struct loop_movables *,
270 static int count_nonfixed_reads PARAMS ((const struct loop *, rtx));
271 static void loop_bivs_find PARAMS((struct loop *));
[all …]
H A Ddoloop.c64 PARAMS ((const struct loop *, rtx));
66 PARAMS ((const struct loop *, rtx, rtx, rtx, rtx, rtx));
68 PARAMS ((const struct loop *, rtx, rtx, rtx, enum machine_mode, rtx));
255 doloop_valid_p (loop, jump_insn) in doloop_valid_p() argument
256 const struct loop *loop; in doloop_valid_p()
259 const struct loop_info *loop_info = LOOP_INFO (loop);
284 if (loop_info->has_multiple_exit_targets || loop->exit_count)
405 doloop_modify (loop, iterations, iterations_max, in doloop_modify() argument
407 const struct loop *loop; in doloop_modify()
421 jump_insn = prev_nonnote_insn (loop->end);
[all …]
H A Dloop.h394 extern struct loop **uid_loop;
400 int loop_invariant_p PARAMS ((const struct loop *, rtx));
401 rtx get_condition_for_loop PARAMS ((const struct loop *, rtx));
402 void loop_iv_add_mult_hoist PARAMS ((const struct loop *, rtx, rtx, rtx, rtx));
403 void loop_iv_add_mult_sink PARAMS ((const struct loop *, rtx, rtx, rtx, rtx));
404 void loop_iv_add_mult_emit_before PARAMS ((const struct loop *, rtx,
410 void unroll_loop PARAMS ((struct loop *, int, int));
412 unsigned HOST_WIDE_INT loop_iterations PARAMS ((struct loop *));
413 int precondition_loop_p PARAMS ((const struct loop *,
416 rtx final_biv_value PARAMS ((const struct loop *, struct iv_class *));
[all …]
/openbsd-src/gnu/llvm/llvm/docs/
H A DTransformMetadata.rst34 Attributes can be attached to loops as described in :ref:`llvm.loop`.
35 Attributes can describe properties of the loop, disable transformations,
40 metadata), in order to add or remove a loop attributes, a new ``MDNode``
41 must be created and assigned as the new ``llvm.loop`` metadata. Any
42 connection between the old ``MDNode`` and the loop is lost. The
43 ``llvm.loop`` node is also used as LoopID (``Loop::getLoopID()``), i.e.
44 the loop effectively gets a new identifier. For instance,
47 loop attributes, any ``llvm.mem.parallel_loop_access`` reference must be
54 loop distribution, etc.). They can either be a hint to the optimizer
57 ``#pragma clang loop`` or ``#pragma omp simd``).
[all …]
H A DLoopTerminology.rst17 A loop is a subset of nodes from the control-flow graph (CFG; where
21 edges from the CFG within the loop) is strongly connected
26 all nodes in the loop (i.e. every execution path to any of the loop's
29 3. The loop is the maximum subset with these properties. That is, no
34 In computer science literature, this is often called a *natural loop*.
42 The definition of a loop comes with some additional terminology:
44 * An **entering block** (or **loop predecessor**) is a non-loop node
45 that has an edge into the loop (necessarily the header). If there is
47 header, it is also called the loop's **preheader**. The preheader
48 dominates the loop without itself being part of the loop.
[all …]
/openbsd-src/regress/usr.bin/sed/
H A Dmath.sed34 # main loop, process operators ((), !, *, /, %, +, and -)
35 : loop
40 b loop
44 b loop
53 b loop
58 b loop
63 b loop
67 b loop
71 b loop
75 b loop
[all …]
/openbsd-src/usr.bin/tmux/
H A Dresize.c71 struct client *loop; in ignore_client_size() local
82 TAILQ_FOREACH (loop, &clients, entry) { in ignore_client_size()
83 if (loop->session == NULL) in ignore_client_size()
85 if (loop->flags & CLIENT_NOSIZEFLAGS) in ignore_client_size()
87 if (~loop->flags & CLIENT_IGNORESIZE) in ignore_client_size()
101 struct client *loop; in clients_with_window() local
104 TAILQ_FOREACH(loop, &clients, entry) { in clients_with_window()
105 if (ignore_client_size(loop) || !session_has(loop->session, w)) in clients_with_window()
119 struct client *loop; in clients_calculate_size() local
267 default_window_size_skip_client(struct client * loop,int type,__unused int current,struct session * s,struct window * w) default_window_size_skip_client() argument
344 recalculate_size_skip_client(struct client * loop,__unused int type,int current,__unused struct session * s,struct window * w) recalculate_size_skip_client() argument
[all...]
/openbsd-src/gnu/gcc/gcc/config/mt/
H A Dmt.c1723 loop_info loop; member
1734 mt_loop_nesting (loop_info loop) in mt_loop_nesting() argument
1740 if (!loop->depth) in mt_loop_nesting()
1743 if (EDGE_COUNT (loop->head->preds) == 2) in mt_loop_nesting()
1745 loop->predecessor = EDGE_PRED (loop->head, 0)->src; in mt_loop_nesting()
1746 if (loop->predecessor == loop->tail) in mt_loop_nesting()
1748 loop->predecessor = EDGE_PRED (loop->head, 1)->src; in mt_loop_nesting()
1752 if (EDGE_COUNT (loop->predecessor->succs) != 1 in mt_loop_nesting()
1753 || !(EDGE_SUCC (loop->predecessor, 0)->flags & EDGE_FALLTHRU)) in mt_loop_nesting()
1754 loop->predecessor = NULL; in mt_loop_nesting()
[all …]
/openbsd-src/games/phantasia/
H A Dio.c248 int loop; /* counter */ in interrupt() local
257 for (loop = 0; loop < 80; ++loop) { /* save line on screen */ in interrupt()
258 move(4, loop); in interrupt()
259 line[loop] = inch(); in interrupt()
320 volatile int loop; /* counter */ in getanswer() local
326 for (loop = 3; loop; --loop) in getanswer()
332 if (def || loop <= 1) in getanswer()
356 ++loop; in getanswer()
361 ++loop; /* don't count this input */ in getanswer()
374 else if (!def && loop > 1) { in getanswer()

12345678910>>...41