GCC Middle and Back End API Reference
tree-ssa-loop.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  affine_iv
class  tree_niter_desc


bool for_each_index (tree *, bool(*)(tree, tree *, void *), void *)
charget_lsm_tmp_name (tree ref, unsigned n, const char *suffix=NULL)
unsigned tree_num_loop_insns (class loop *, struct eni_weights *)
class looploop_containing_stmt (gimple *stmt)

Function Documentation

◆ for_each_index()

bool for_each_index ( tree * addr_p,
bool(*)(tree, tree *, void *) cbck,
void * data )
Calls CBCK for each index in memory reference ADDR_P.  There are two
kinds situations handled; in each of these cases, the memory reference
and DATA are passed to the callback:

Access to an array: ARRAY_{RANGE_}REF (base, index).  In this case we also
pass the pointer to the index to the callback.

Pointer dereference: INDIRECT_REF (addr).  In this case we also pass the
pointer to addr to the callback.

If the callback returns false, the whole search stops and false is returned.
Otherwise the function returns true after traversing through the whole
reference *ADDR_P.   

References CONSTANT_CLASS_P, DECL_P, gcc_assert, gcc_unreachable, ggc_alloc(), is_gimple_min_invariant(), TMR_BASE, TMR_INDEX, TMR_INDEX2, TREE_CODE, and TREE_OPERAND.

Referenced by analyze_ref(), can_sm_ref_p(), dse_classify_store(), execute_sm(), find_interesting_uses_address(), infer_loop_bounds_from_ref(), propagate_with_phi(), and ref_within_array_bound().

◆ get_lsm_tmp_name()

char * get_lsm_tmp_name ( tree ref,
unsigned n,
const char * suffix )
Determines name for temporary variable that replaces REF.
The name is accumulated into the lsm_tmp_name variable.
N is added to the name of the temporary.   

References gen_lsm_tmp_name(), lsm_tmp_name, lsm_tmp_name_add(), lsm_tmp_name_length, and NULL.

Referenced by execute_sm(), execute_sm_if_changed_flag_set(), and predcom_tmp_var().

◆ loop_containing_stmt()

◆ tree_num_loop_insns()

unsigned tree_num_loop_insns ( class loop * loop,
eni_weights * weights )
Computes an estimated number of insns in LOOP, weighted by WEIGHTS.   

References estimate_num_insns(), free(), get_loop_body(), ggc_alloc(), gsi_end_p(), gsi_next(), gsi_start_bb(), gsi_stmt(), i, and loop::num_nodes.

Referenced by can_unroll_loop_p(), and loop_prefetch_arrays().