• 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-2013.11/lib/gcc/arm-none-eabi/4.8.1/plugin/include/

Lines Matching refs:loop

1 /* Natural loop functions
53 /* The structure describing a bound on number of iterations of a loop. */
68 /* True if the statement will cause the loop to be leaved the (at most)
77 /* Description of the loop exit. */
83 /* Previous and next exit in the list of the exits of the loop. */
91 typedef struct loop *loop_p;
103 /* Structure to hold information for each natural loop. */
104 struct GTY ((chain_next ("%h.next"))) loop {
108 /* Number of loop insns. */
111 /* Basic block of loop header. */
114 /* Basic block of loop latch. */
117 /* For loop unrolling/peeling decision. */
123 /* Number of blocks contained within the loop. */
126 /* Superloops of the loop, starting with the outermost loop. */
129 /* The first inner (child) loop or NULL if innermost loop. */
130 struct loop *inner;
132 /* Link to the next (sibling) loop. */
133 struct loop *next;
138 /* The number of times the latch of the loop is executed. This can be an
159 /* True if the loop can be parallel. */
162 /* True if -Waggressive-loop-optimizations warned about this loop
170 /* Upper bound on number of iterations of a loop. */
173 /* Head of the cyclic list of the exits of the loop. */
177 /* Flags for state of loop structure. */
202 /* Maps edges to the list of their descriptions as loop exits. Edges
207 /* Pointer to root of loop hierarchy tree. */
208 struct loop *tree_root;
217 void (*)(const struct loop *, FILE *, int), int);
218 extern void flow_loop_dump (const struct loop *, FILE *,
219 void (*)(const struct loop *, FILE *, int), int);
220 struct loop *alloc_loop (void);
221 extern void flow_loop_free (struct loop *);
222 int flow_loop_nodes_find (basic_block, struct loop *);
230 extern void flow_loop_tree_node_add (struct loop *, struct loop *);
231 extern void flow_loop_tree_node_remove (struct loop *);
232 extern void add_loop (struct loop *, struct loop *);
233 extern bool flow_loop_nested_p (const struct loop *, const struct loop *);
234 extern bool flow_bb_inside_loop_p (const struct loop *, const_basic_block);
235 extern struct loop * find_common_loop (struct loop *, struct loop *);
236 struct loop *superloop_at_depth (struct loop *, unsigned);
238 extern unsigned tree_num_loop_insns (struct loop *, struct eni_weights_d *);
239 extern int num_loop_insns (const struct loop *);
240 extern int average_num_loop_insns (const struct loop *);
241 extern unsigned get_loop_level (const struct loop *);
242 extern bool loop_exit_edge_p (const struct loop *, const_edge);
243 extern bool loop_exits_to_bb_p (struct loop *, basic_block);
244 extern bool loop_exits_from_bb_p (struct loop *, basic_block);
246 extern location_t get_loop_location (struct loop *loop);
249 extern basic_block *get_loop_body (const struct loop *);
250 extern unsigned get_loop_body_with_size (const struct loop *, basic_block *,
252 extern basic_block *get_loop_body_in_dom_order (const struct loop *);
253 extern basic_block *get_loop_body_in_bfs_order (const struct loop *);
254 extern basic_block *get_loop_body_in_custom_order (const struct loop *,
257 extern vec<edge> get_loop_exit_edges (const struct loop *);
258 extern edge single_exit (const struct loop *);
259 extern edge single_likely_exit (struct loop *loop);
260 extern unsigned num_loop_branches (const struct loop *);
262 extern edge loop_preheader_edge (const struct loop *);
263 extern edge loop_latch_edge (const struct loop *);
265 extern void add_bb_to_loop (basic_block, struct loop *);
268 extern void cancel_loop_tree (struct loop *);
269 extern void delete_loop (struct loop *);
277 basic_block create_preheader (struct loop *, int);
284 extern bool just_once_each_iteration_p (const struct loop *, const_basic_block);
285 gcov_type expected_loop_iterations_unbounded (const struct loop *);
286 extern unsigned expected_loop_iterations (const struct loop *);
289 void estimate_numbers_of_iterations_loop (struct loop *);
290 void record_niter_bound (struct loop *, double_int, bool, bool);
291 bool estimated_loop_iterations (struct loop *, double_int *);
292 bool max_loop_iterations (struct loop *, double_int *);
293 HOST_WIDE_INT estimated_loop_iterations_int (struct loop *);
294 HOST_WIDE_INT max_loop_iterations_int (struct loop *);
295 bool max_stmt_executions (struct loop *, double_int *);
296 bool estimated_stmt_executions (struct loop *, double_int *);
297 HOST_WIDE_INT max_stmt_executions_int (struct loop *);
298 HOST_WIDE_INT estimated_stmt_executions_int (struct loop *);
301 extern bool can_duplicate_loop_p (const struct loop *loop);
311 extern struct loop *create_empty_loop_on_edge (edge, tree, tree, tree, tree,
312 tree *, tree *, struct loop *);
313 extern struct loop * duplicate_loop (struct loop *, struct loop *);
314 extern void copy_loop_info (struct loop *loop, struct loop *target);
315 extern void duplicate_subloops (struct loop *, struct loop *);
316 extern bool duplicate_loop_to_header_edge (struct loop *, edge,
319 extern struct loop *loopify (edge, edge,
322 struct loop * loop_version (struct loop *, void *,
325 extern void unloop (struct loop *, bool *, bitmap);
326 extern void scale_loop_frequencies (struct loop *, int, int);
372 /* The description of an exit from the loop and of the number of iterations
377 /* The edge out of the loop. */
384 loop. */
387 /* True if the loop iterates the constant number of times. */
396 /* Assumptions under that the loop ends before reaching the latch,
400 /* Condition under that the loop is infinite. */
409 /* The number of iterations of the loop. */
413 extern void iv_analysis_loop_init (struct loop *);
419 extern void find_simple_exit (struct loop *, struct niter_desc *);
422 extern struct niter_desc *get_simple_loop_desc (struct loop *loop);
423 extern void free_simple_loop_desc (struct loop *loop);
426 simple_loop_desc (struct loop *loop)
428 return (struct niter_desc *) loop->aux;
431 /* Accessors for the loop structures. */
433 /* Returns the loop with index NUM from current_loops. */
435 static inline struct loop *
444 loop_depth (const struct loop *loop)
446 return vec_safe_length (loop->superloops);
449 /* Returns the loop depth of the loop BB belongs to. */
458 loop. */
460 static inline struct loop *
461 loop_outer (const struct loop *loop)
463 unsigned n = vec_safe_length (loop->superloops);
468 return (*loop->superloops)[n - 1];
474 loop_has_exit_edges (const struct loop *loop)
476 return loop->exits->next->e != NULL;
491 ones and the fake loop that forms the root of the loop tree). */
531 /* Flags for loop iteration. */
535 LI_INCLUDE_ROOT = 1, /* Include the fake root of the loop tree. */
548 /* The index of the actual loop. */
553 fel_next (loop_iterator *li, loop_p *loop)
560 *loop = get_loop (anum);
561 if (*loop)
566 *loop = NULL;
570 fel_init (loop_iterator *li, loop_p *loop, unsigned flags)
572 struct loop *aloop;
580 *loop = NULL;
643 fel_next (li, loop);
694 /* Register pressure estimation for induction variable optimizations & loop
708 UAP_PEEL = 1, /* Enables loop peeling. */
716 extern bool finite_loop_p (struct loop *);
717 extern void scale_loop_profile (struct loop *loop, int scale, gcov_type iteration_bound);
718 extern vec<basic_block> get_loop_hot_path (const struct loop *loop);
720 /* Returns the outermost loop of the loop nest that contains LOOP.*/
721 static inline struct loop *
722 loop_outermost (struct loop *loop)
724 unsigned n = vec_safe_length (loop->superloops);
727 return loop;
729 return (*loop->superloops)[1];