GCC Middle and Back End API Reference
tree-affine.h File Reference

Go to the source code of this file.

Data Structures

struct  aff_comb_elt
struct  affine_tree_combination

Typedefs

typedef struct
affine_tree_combination 
aff_tree

Functions

double_int double_int_ext_for_comb (double_int, aff_tree *)
void aff_combination_const (aff_tree *, tree, double_int)
void aff_combination_elt (aff_tree *, tree, tree)
void aff_combination_scale (aff_tree *, double_int)
void aff_combination_mult (aff_tree *, aff_tree *, aff_tree *)
void aff_combination_add (aff_tree *, aff_tree *)
void aff_combination_add_elt (aff_tree *, tree, double_int)
void aff_combination_remove_elt (aff_tree *, unsigned)
void aff_combination_convert (aff_tree *, tree)
void tree_to_aff_combination (tree, tree, aff_tree *)
tree aff_combination_to_tree (aff_tree *)
void unshare_aff_combination (aff_tree *)
bool aff_combination_constant_multiple_p (aff_tree *, aff_tree *, double_int *)
void aff_combination_expand (aff_tree *, struct pointer_map_t **)
void tree_to_aff_combination_expand (tree, tree, aff_tree *, struct pointer_map_t **)
void get_inner_reference_aff (tree, aff_tree *, double_int *)
void free_affine_expand_cache (struct pointer_map_t **)
bool aff_comb_cannot_overlap_p (aff_tree *, double_int, double_int)
void debug_aff (aff_tree *)

Typedef Documentation


Function Documentation

bool aff_comb_cannot_overlap_p ( aff_tree ,
double_int  ,
double_int   
)
void aff_combination_add ( aff_tree ,
aff_tree  
)
void aff_combination_add_elt ( aff_tree ,
tree  ,
double_int   
)
void aff_combination_const ( aff_tree ,
tree  ,
double_int   
)
bool aff_combination_constant_multiple_p ( aff_tree val,
aff_tree div,
double_int mult 
)
void aff_combination_convert ( aff_tree ,
tree   
)
void aff_combination_elt ( aff_tree ,
tree  ,
tree   
)
void aff_combination_mult ( aff_tree ,
aff_tree ,
aff_tree  
)
void aff_combination_remove_elt ( aff_tree ,
unsigned   
)
void aff_combination_scale ( aff_tree ,
double_int   
)
tree aff_combination_to_tree ( aff_tree )
void debug_aff ( aff_tree )
Debugging functions.   
double_int double_int_ext_for_comb ( double_int  ,
aff_tree  
)
void free_affine_expand_cache ( struct pointer_map_t **  )
void get_inner_reference_aff ( tree  ,
aff_tree ,
double_int  
)
void tree_to_aff_combination ( tree  ,
tree  ,
aff_tree  
)
void tree_to_aff_combination_expand ( tree  expr,
tree  type,
aff_tree comb,
struct pointer_map_t **  cache 
)
Similar to tree_to_aff_combination, but follows SSA name definitions
   and expands them recursively.  CACHE is used to cache the expansions
   of the ssa names, to avoid exponential time complexity for cases
   like

   a1 = a0 + a0;
   a2 = a1 + a1;
   a3 = a2 + a2;
   ...   

References aff_combination_expand(), and tree_to_aff_combination().

Referenced by aff_combination_dr_offset(), aff_combination_expand(), determine_offset(), and valid_initializer_p().

void unshare_aff_combination ( aff_tree )