Lines Matching refs:loop
95 typedef class loop *loop_p;
117 class GTY ((chain_next ("%h.next"))) loop {
145 class loop *inner;
148 class loop *next;
284 loop_constraint_set (class loop *loop, unsigned c) in loop_constraint_set() argument
286 loop->constraints |= c; in loop_constraint_set()
291 loop_constraint_clear (class loop *loop, unsigned c) in loop_constraint_clear() argument
293 loop->constraints &= ~c; in loop_constraint_clear()
298 loop_constraint_set_p (class loop *loop, unsigned c) in loop_constraint_set_p() argument
300 return (loop->constraints & c) == c; in loop_constraint_set_p()
334 class loop *tree_root;
344 void (*)(const class loop *, FILE *, int), int);
345 extern void flow_loop_dump (const class loop *, FILE *,
346 void (*)(const class loop *, FILE *, int), int);
347 class loop *alloc_loop (void);
348 extern void flow_loop_free (class loop *);
349 int flow_loop_nodes_find (basic_block, class loop *);
358 extern void flow_loop_tree_node_add (class loop *, class loop *,
359 class loop * = NULL);
360 extern void flow_loop_tree_node_remove (class loop *);
361 extern bool flow_loop_nested_p (const class loop *, const class loop *);
362 extern bool flow_bb_inside_loop_p (const class loop *, const_basic_block);
363 extern class loop * find_common_loop (class loop *, class loop *);
364 class loop *superloop_at_depth (class loop *, unsigned);
366 extern int num_loop_insns (const class loop *);
367 extern int average_num_loop_insns (const class loop *);
368 extern unsigned get_loop_level (const class loop *);
369 extern bool loop_exit_edge_p (const class loop *, const_edge);
370 extern bool loop_exits_to_bb_p (class loop *, basic_block);
371 extern bool loop_exits_from_bb_p (class loop *, basic_block);
373 extern dump_user_location_t get_loop_location (class loop *loop);
376 extern basic_block *get_loop_body (const class loop *);
377 extern unsigned get_loop_body_with_size (const class loop *, basic_block *,
379 extern basic_block *get_loop_body_in_dom_order (const class loop *);
380 extern basic_block *get_loop_body_in_bfs_order (const class loop *);
381 extern basic_block *get_loop_body_in_custom_order (const class loop *,
383 extern basic_block *get_loop_body_in_custom_order (const class loop *, void *,
386 extern vec<edge> get_loop_exit_edges (const class loop *, basic_block * = NULL);
387 extern edge single_exit (const class loop *);
388 extern edge single_likely_exit (class loop *loop, vec<edge>);
389 extern unsigned num_loop_branches (const class loop *);
391 extern edge loop_preheader_edge (const class loop *);
392 extern edge loop_latch_edge (const class loop *);
394 extern void add_bb_to_loop (basic_block, class loop *);
397 extern void cancel_loop_tree (class loop *);
398 extern void delete_loop (class loop *);
404 extern bool just_once_each_iteration_p (const class loop *, const_basic_block);
405 gcov_type expected_loop_iterations_unbounded (const class loop *,
407 extern unsigned expected_loop_iterations (class loop *);
499 extern void iv_analysis_loop_init (class loop *);
508 extern class niter_desc *get_simple_loop_desc (class loop *loop);
509 extern void free_simple_loop_desc (class loop *loop);
512 simple_loop_desc (class loop *loop) in simple_loop_desc() argument
514 return loop->simple_loop_desc; in simple_loop_desc()
521 static inline class loop *
530 loop_depth (const class loop *loop) in loop_depth() argument
532 return vec_safe_length (loop->superloops); in loop_depth()
538 static inline class loop *
539 loop_outer (const class loop *loop) in loop_outer() argument
541 unsigned n = vec_safe_length (loop->superloops); in loop_outer()
546 return (*loop->superloops)[n - 1]; in loop_outer()
552 loop_has_exit_edges (const class loop *loop) in loop_has_exit_edges() argument
554 return loop->exits->next->e != NULL; in loop_has_exit_edges()
666 loop_iterator (function *fn, loop_p *loop, unsigned flags);
688 loop_p loop = get_loop (fn, anum); in next() local
689 if (loop) in next()
690 return loop; in next()
697 loop_iterator::loop_iterator (function *fn, loop_p *loop, unsigned flags) in loop_iterator() argument
699 class loop *aloop; in loop_iterator()
707 *loop = NULL; in loop_iterator()
770 *loop = this->next (); in loop_iterator()
843 extern vec<basic_block> get_loop_hot_path (const class loop *loop);
846 static inline class loop *
847 loop_outermost (class loop *loop) in loop_outermost() argument
849 unsigned n = vec_safe_length (loop->superloops); in loop_outermost()
852 return loop; in loop_outermost()
854 return (*loop->superloops)[1]; in loop_outermost()
857 extern void record_niter_bound (class loop *, const widest_int &, bool, bool);
858 extern HOST_WIDE_INT get_estimated_loop_iterations_int (class loop *);
859 extern HOST_WIDE_INT get_max_loop_iterations_int (const class loop *);
860 extern HOST_WIDE_INT get_likely_max_loop_iterations_int (class loop *);
861 extern bool get_estimated_loop_iterations (class loop *loop, widest_int *nit);
862 extern bool get_max_loop_iterations (const class loop *loop, widest_int *nit);
863 extern bool get_likely_max_loop_iterations (class loop *loop, widest_int *nit);