Lines Matching refs:loop

1 /* Natural loop functions
46 /* The structure describing a bound on number of iterations of a loop. */
53 a loop. */
58 /* Structure to hold information for each natural loop. */
59 struct loop
64 /* Basic block of loop header. */
67 /* Basic block of loop latch. */
70 /* For loop unrolling/peeling decision. */
73 /* Number of loop insns. */
79 /* Number of blocks contained within the loop. */
82 /* The loop nesting depth. */
85 /* Superloops of the loop. */
86 struct loop **pred;
88 /* The height of the loop (enclosed loop levels) within the loop
92 /* The outer (parent) loop or NULL if outermost loop. */
93 struct loop *outer;
95 /* The first inner (child) loop or NULL if innermost loop. */
96 struct loop *inner;
98 /* Link to the next (sibling) loop. */
99 struct loop *next;
101 /* Loop that is copy of this loop. */
102 struct loop *copy;
107 /* The probable number of times the loop is executed at runtime.
118 /* Upper bound on number of iterations of a loop. */
121 /* If not NULL, loop has just single exit edge stored here (edges to the
125 /* True when the loop does not carry data dependences, and
127 when the loop carries data dependences, or when the property is
132 /* Flags for state of loop structure. */
154 Note that a loop in this array may actually be NULL, if the loop
157 struct loop **parray;
159 /* Pointer to root of loop hierarchy tree. */
160 struct loop *tree_root;
177 /* The loop tree currently optimized. */
185 void (*)(const struct loop *, FILE *, int), int);
186 extern void flow_loop_dump (const struct loop *, FILE *,
187 void (*)(const struct loop *, FILE *, int), int);
188 extern void flow_loop_free (struct loop *);
189 int flow_loop_nodes_find (basic_block, struct loop *);
195 extern void flow_loop_tree_node_add (struct loop *, struct loop *);
196 extern void flow_loop_tree_node_remove (struct loop *);
197 extern bool flow_loop_nested_p (const struct loop *, const struct loop *);
198 extern bool flow_bb_inside_loop_p (const struct loop *, const basic_block);
199 extern struct loop * find_common_loop (struct loop *, struct loop *);
200 struct loop *superloop_at_depth (struct loop *, unsigned);
201 extern unsigned tree_num_loop_insns (struct loop *);
202 extern int num_loop_insns (struct loop *);
203 extern int average_num_loop_insns (struct loop *);
204 extern unsigned get_loop_level (const struct loop *);
205 extern bool loop_exit_edge_p (const struct loop *, edge);
209 extern basic_block *get_loop_body (const struct loop *);
210 extern basic_block *get_loop_body_in_dom_order (const struct loop *);
211 extern basic_block *get_loop_body_in_bfs_order (const struct loop *);
212 extern edge *get_loop_exit_edges (const struct loop *, unsigned *);
213 extern unsigned num_loop_branches (const struct loop *);
215 extern edge loop_preheader_edge (const struct loop *);
216 extern edge loop_latch_edge (const struct loop *);
218 extern void add_bb_to_loop (basic_block, struct loop *);
221 extern void cancel_loop_tree (struct loops *, struct loop *);
224 extern int fix_loop_placement (struct loop *);
237 extern bool just_once_each_iteration_p (const struct loop *, basic_block);
238 extern unsigned expected_loop_iterations (const struct loop *);
242 extern bool can_duplicate_loop_p (struct loop *loop);
251 extern struct loop * duplicate_loop (struct loops *, struct loop *,
252 struct loop *);
253 extern bool duplicate_loop_to_header_edge (struct loop *, edge, struct loops *,
256 extern struct loop *loopify (struct loops *, edge, edge,
258 struct loop * loop_version (struct loops *, struct loop *, void *,
305 /* The description of an exit from the loop and of the number of iterations
310 /* The edge out of the loop. */
317 loop. */
320 /* True if the loop iterates the constant number of times. */
332 /* Assumptions under that the loop ends before reaching the latch,
336 /* Condition under that the loop is infinite. */
345 /* The number of iterations of the loop. */
349 extern void iv_analysis_loop_init (struct loop *);
355 extern void find_simple_exit (struct loop *, struct niter_desc *);
359 extern struct niter_desc *get_simple_loop_desc (struct loop *loop);
360 extern void free_simple_loop_desc (struct loop *loop);
363 simple_loop_desc (struct loop *loop)
365 return (struct niter_desc *) loop->aux;
379 /* Register pressure estimation for induction variable optimizations & loop
393 UAP_PEEL = 1, /* Enables loop peeling. */
401 extern void record_estimate (struct loop *, tree, tree, tree);