• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-armeabi-2011.09/lib/gcc/arm-none-eabi/4.6.1/plugin/include/

Lines Matching refs:loop

1 /* Natural loop functions
49 /* The structure describing a bound on number of iterations of a loop. */
64 /* True if the statement will cause the loop to be leaved the (at most)
73 /* Description of the loop exit. */
79 /* Previous and next exit in the list of the exits of the loop. */
87 typedef struct loop *loop_p;
102 /* Structure to hold information for each natural loop. */
103 struct GTY ((chain_next ("%h.next"))) loop {
107 /* Number of loop insns. */
110 /* Basic block of loop header. */
113 /* Basic block of loop latch. */
116 /* For loop unrolling/peeling decision. */
122 /* Number of blocks contained within the loop. */
125 /* Superloops of the loop, starting with the outermost loop. */
128 /* The first inner (child) loop or NULL if innermost loop. */
129 struct loop *inner;
131 /* Link to the next (sibling) loop. */
132 struct loop *next;
137 /* The number of times the latch of the loop is executed. This can be an
146 /* An integer guaranteed to bound the number of iterations of the loop
150 /* An integer giving the expected number of iterations of the loop. */
156 /* True if the loop can be parallel. */
163 /* Upper bound on number of iterations of a loop. */
166 /* Head of the cyclic list of the exits of the loop. */
170 /* Flags for state of loop structure. */
195 /* Maps edges to the list of their descriptions as loop exits. Edges
200 /* Pointer to root of loop hierarchy tree. */
201 struct loop *tree_root;
209 void (*)(const struct loop *, FILE *, int), int);
210 extern void flow_loop_dump (const struct loop *, FILE *,
211 void (*)(const struct loop *, FILE *, int), int);
212 struct loop *alloc_loop (void);
213 extern void flow_loop_free (struct loop *);
214 int flow_loop_nodes_find (basic_block, struct loop *);
222 extern void flow_loop_tree_node_add (struct loop *, struct loop *);
223 extern void flow_loop_tree_node_remove (struct loop *);
224 extern void add_loop (struct loop *, struct loop *);
225 extern bool flow_loop_nested_p (const struct loop *, const struct loop *);
226 extern bool flow_bb_inside_loop_p (const struct loop *, const_basic_block);
227 extern struct loop * find_common_loop (struct loop *, struct loop *);
228 struct loop *superloop_at_depth (struct loop *, unsigned);
230 extern unsigned tree_num_loop_insns (struct loop *, struct eni_weights_d *);
231 extern int num_loop_insns (const struct loop *);
232 extern int average_num_loop_insns (const struct loop *);
233 extern unsigned get_loop_level (const struct loop *);
234 extern bool loop_exit_edge_p (const struct loop *, const_edge);
235 extern bool loop_exits_to_bb_p (struct loop *, basic_block);
236 extern bool loop_exits_from_bb_p (struct loop *, basic_block);
240 extern basic_block *get_loop_body (const struct loop *);
241 extern unsigned get_loop_body_with_size (const struct loop *, basic_block *,
243 extern basic_block *get_loop_body_in_dom_order (const struct loop *);
244 extern basic_block *get_loop_body_in_bfs_order (const struct loop *);
245 extern basic_block *get_loop_body_in_custom_order (const struct loop *,
248 extern VEC (edge, heap) *get_loop_exit_edges (const struct loop *);
249 edge single_exit (const struct loop *);
250 extern unsigned num_loop_branches (const struct loop *);
252 extern edge loop_preheader_edge (const struct loop *);
253 extern edge loop_latch_edge (const struct loop *);
255 extern void add_bb_to_loop (basic_block, struct loop *);
258 extern void cancel_loop_tree (struct loop *);
259 extern void delete_loop (struct loop *);
267 basic_block create_preheader (struct loop *, int);
274 extern bool just_once_each_iteration_p (const struct loop *, const_basic_block);
275 gcov_type expected_loop_iterations_unbounded (const struct loop *);
276 extern unsigned expected_loop_iterations (const struct loop *);
279 void estimate_numbers_of_iterations_loop (struct loop *, bool);
280 HOST_WIDE_INT estimated_loop_iterations_int (struct loop *, bool);
281 bool estimated_loop_iterations (struct loop *, bool, double_int *);
284 extern bool can_duplicate_loop_p (const struct loop *loop);
294 extern struct loop *create_empty_loop_on_edge (edge, tree, tree, tree, tree,
295 tree *, tree *, struct loop *);
296 extern struct loop * duplicate_loop (struct loop *, struct loop *);
297 extern void duplicate_subloops (struct loop *, struct loop *);
298 extern bool duplicate_loop_to_header_edge (struct loop *, edge,
301 extern struct loop *loopify (edge, edge,
304 struct loop * loop_version (struct loop *, void *,
307 void scale_loop_frequencies (struct loop *, int, int);
352 /* The description of an exit from the loop and of the number of iterations
357 /* The edge out of the loop. */
364 loop. */
367 /* True if the loop iterates the constant number of times. */
379 /* Assumptions under that the loop ends before reaching the latch,
383 /* Condition under that the loop is infinite. */
392 /* The number of iterations of the loop. */
396 extern void iv_analysis_loop_init (struct loop *);
402 extern void find_simple_exit (struct loop *, struct niter_desc *);
405 extern struct niter_desc *get_simple_loop_desc (struct loop *loop);
406 extern void free_simple_loop_desc (struct loop *loop);
409 simple_loop_desc (struct loop *loop)
411 return (struct niter_desc *) loop->aux;
414 /* Accessors for the loop structures. */
416 /* Returns the loop with index NUM from current_loops. */
418 static inline struct loop *
427 loop_depth (const struct loop *loop)
429 return VEC_length (loop_p, loop->superloops);
433 loop. */
435 static inline struct loop *
436 loop_outer (const struct loop *loop)
438 unsigned n = VEC_length (loop_p, loop->superloops);
443 return VEC_index (loop_p, loop->superloops, n - 1);
458 ones and the fake loop that forms the root of the loop tree). */
498 /* Flags for loop iteration. */
502 LI_INCLUDE_ROOT = 1, /* Include the fake root of the loop tree. */
515 /* The index of the actual loop. */
520 fel_next (loop_iterator *li, loop_p *loop)
527 *loop = get_loop (anum);
528 if (*loop)
533 *loop = NULL;
537 fel_init (loop_iterator *li, loop_p *loop, unsigned flags)
539 struct loop *aloop;
547 *loop = NULL;
610 fel_next (li, loop);
661 /* Register pressure estimation for induction variable optimizations & loop
675 UAP_PEEL = 1, /* Enables loop peeling. */
683 extern bool finite_loop_p (struct loop *);