GCC Middle and Back End API Reference
loop Struct Reference

#include <cfgloop.h>

Collaboration diagram for loop:

Data Fields

int num
unsigned ninsns
basic_block header
basic_block latch
struct lpt_decision lpt_decision
unsigned av_ninsns
unsigned num_nodes
vec< loop_p, va_gc > * superloops
struct loopinner
struct loopnext
PTR aux
tree nb_iterations
double_int nb_iterations_upper_bound
double_int nb_iterations_estimate
bool any_upper_bound
bool any_estimate
bool can_be_parallel
bool warned_aggressive_loop_optimizations
enum loop_estimation estimate_state
int safelen
bool force_vect
tree simduid
struct nb_iter_boundbounds
struct loop_exitexits
struct niter_descsimple_loop_desc

Detailed Description

   Structure to hold information for each natural loop.  

Field Documentation

bool loop::any_estimate
bool loop::any_upper_bound

Referenced by single_exit().

PTR loop::aux
     Auxiliary info specific to a pass.  

Referenced by mark_regno_death().

unsigned loop::av_ninsns
     Average number of executed insns per iteration.  
struct nb_iter_bound* loop::bounds
     Upper bound on number of iterations of a loop.  

Referenced by n_of_executions_at_most().

bool loop::can_be_parallel
     True if the loop can be parallel.  

Referenced by debug_generated_program(), and graphite_create_new_loop_guard().

enum loop_estimation loop::estimate_state
     An integer estimation of the number of iterations.  Estimate_state
     describes what is the state of the estimation.  

Referenced by n_of_executions_at_most().

struct loop_exit* loop::exits
     Head of the cyclic list of the exits of the loop.  

Referenced by loop_exit_free(), loop_exit_hash(), and record_loop_exits().

bool loop::force_vect
     True if we should try harder to vectorize this loop.  
struct lpt_decision loop::lpt_decision
     For loop unrolling/peeling decision.  

Referenced by decide_peel_simple(), loop_exit_at_end_p(), split_edge_and_insert(), and unroll_and_peel_loops().

tree loop::nb_iterations
     The number of times the latch of the loop is executed.  This can be an
     INTEGER_CST, or a symbolic expression representing the number of
     iterations like "N - 1", or a COND_EXPR containing the runtime
     conditions under which the number of iterations is non zero.

     Don't access this field directly: number_of_latch_executions
     computes and caches the computed information in this field.  

Referenced by dump_chrecs_stats(), gather_chrec_stats(), and n_of_executions_at_most().

double_int loop::nb_iterations_estimate
     An integer giving an estimate on nb_iterations.  Unlike
     nb_iterations_upper_bound, there is no guarantee that it is at least
     nb_iterations.  
double_int loop::nb_iterations_upper_bound
     An integer guaranteed to be greater or equal to nb_iterations.  Only
     valid if any_upper_bound is true.  

Referenced by single_exit().

unsigned loop::ninsns
     Number of loop insns.  

Referenced by loop_exit_at_end_p(), num_loop_insns(), and unloop_loops().

int loop::safelen
     If > 0, an integer, where the user asserted that for any
     I in [ 0, nb_iterations ) and for any J in
     [ I, min ( I + safelen, nb_iterations ) ), the Ith and Jth iterations
     of the loop can be safely evaluated concurrently.  
tree loop::simduid
     For SIMD loops, this is a unique identifier of the loop, referenced
     by IFN_GOMP_SIMD_VF, IFN_GOMP_SIMD_LANE and IFN_GOMP_SIMD_LAST_LANE
     builtins.  
struct niter_desc* loop::simple_loop_desc
     Number of iteration analysis data for RTL.  

Referenced by check_simple_exit(), and find_simple_exit().

vec<loop_p, va_gc>* loop::superloops
     Superloops of the loop, starting with the outermost loop.  
bool loop::warned_aggressive_loop_optimizations
     True if -Waggressive-loop-optimizations warned about this loop
     already.  

The documentation for this struct was generated from the following file: