GCC Middle and Back End API Reference
tree-ssanames.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  ptr_info_def
struct  range_info_def

Macros

#define SSANAMES(fun)   (fun)->gimple_df->ssa_names
#define MODIFIED_NORETURN_CALLS(fun)   (fun)->gimple_df->modified_noreturn_calls
#define DEFAULT_DEFS(fun)   (fun)->gimple_df->default_defs
#define num_ssa_names   (vec_safe_length (cfun->gimple_df->ssa_names))
#define ssa_name(i)   ((*cfun->gimple_df->ssa_names)[(i)])

Enumerations

enum  value_range_type { VR_UNDEFINED, VR_RANGE, VR_ANTI_RANGE, VR_VARYING }

Functions

void set_range_info (tree ssa, double_int min, double_int max)
enum value_range_type get_range_info (tree name, double_int *min, double_int *max)
void init_ssanames (struct function *, int)
void fini_ssanames (void)
void ssanames_print_statistics (void)
tree make_ssa_name_fn (struct function *, tree, gimple)
void release_ssa_name (tree)
bool get_ptr_info_alignment (struct ptr_info_def *, unsigned int *, unsigned int *)
void mark_ptr_info_alignment_unknown (struct ptr_info_def *)
void set_ptr_info_alignment (struct ptr_info_def *, unsigned int, unsigned int)
void adjust_ptr_info_misalignment (struct ptr_info_def *, unsigned int)
struct ptr_info_defget_ptr_info (tree)
tree copy_ssa_name_fn (struct function *, tree, gimple)
void duplicate_ssa_name_ptr_info (tree, struct ptr_info_def *)
tree duplicate_ssa_name_fn (struct function *, tree, gimple)
void duplicate_ssa_name_range_info (tree, struct range_info_def *)
void release_defs (gimple)
void replace_ssa_name_symbol (tree, tree)
static tree make_ssa_name ()
static tree copy_ssa_name ()
static tree duplicate_ssa_name ()
static tree make_temp_ssa_name ()

Macro Definition Documentation

#define DEFAULT_DEFS (   fun)    (fun)->gimple_df->default_defs

Referenced by ssa_default_def().

#define MODIFIED_NORETURN_CALLS (   fun)    (fun)->gimple_df->modified_noreturn_calls

Referenced by fixup_noreturn_call().

#define SSANAMES (   fun)    (fun)->gimple_df->ssa_names

Enumeration Type Documentation

Type of value ranges. See value_range_d In tree-vrp.c for a description of these types.

Enumerator:
VR_UNDEFINED 
VR_RANGE 
VR_ANTI_RANGE 
VR_VARYING 

Function Documentation

void adjust_ptr_info_misalignment ( struct ptr_info_def pi,
unsigned int  increment 
)

If pointer described by PI has known alignment, increase its known misalignment by INCREMENT modulo its current alignment.

References make_ssa_name_fn(), SSA_NAME_VAR, and TREE_TYPE.

static tree copy_ssa_name ( )
inlinestatic
tree copy_ssa_name_fn ( struct function ,
tree  ,
gimple   
)
static tree duplicate_ssa_name ( )
inlinestatic

Creates a duplicate of a SSA name NAME tobe defined by statement STMT in function cfun.

Referenced by gimple_stringop_fixed_value(), and verify_loop_closed_ssa().

tree duplicate_ssa_name_fn ( struct function ,
tree  ,
gimple   
)
void duplicate_ssa_name_ptr_info ( tree  ,
struct ptr_info_def  
)
void duplicate_ssa_name_range_info ( tree  ,
struct range_info_def  
)
void fini_ssanames ( void  )

Finalize management of SSA_NAMEs.

References ssa_name_nodes_created, and ssa_name_nodes_reused.

Referenced by execute_init_datastructures().

struct ptr_info_def* get_ptr_info ( tree  )
read
bool get_ptr_info_alignment ( struct ptr_info_def pi,
unsigned int *  alignp,
unsigned int *  misalignp 
)

If the alignment of the pointer described by PI is known, return true and store the alignment and the deviation from it into *ALIGNP and *MISALIGNP respectively. Otherwise return false.

References ptr_info_def::align, gcc_assert, gcc_checking_assert, and ptr_info_def::misalign.

Referenced by get_address_description(), and get_object_alignment().

enum value_range_type get_range_info ( tree  name,
double_int min,
double_int max 
)

Gets the value range from SSA.

void init_ssanames ( struct function ,
int   
)
tree make_ssa_name_fn ( struct function ,
tree  ,
gimple   
)
static tree make_temp_ssa_name ( )
inlinestatic

Return an anonymous SSA_NAME node for type TYPE defined in statement STMT in function cfun. Arrange so that it uses NAME in dumps.

Referenced by attempt_builtin_powi(), create_iv(), gimple_gen_one_value_profiler(), ncd_for_two_cands(), and powi_lookup_cost().

void mark_ptr_info_alignment_unknown ( struct ptr_info_def )
void release_defs ( gimple  )
void release_ssa_name ( tree  )
void replace_ssa_name_symbol ( tree  ,
tree   
)
void set_ptr_info_alignment ( struct ptr_info_def pi,
unsigned int  align,
unsigned int  misalign 
)

Store the the power-of-two byte alignment and the deviation from that alignment of pointer described by PI to ALIOGN and MISALIGN respectively.

References gcc_assert, mark_ptr_info_alignment_unknown(), NULL, POINTER_TYPE_P, ptr_info_def::pt, pt_solution_reset(), SSA_NAME_PTR_INFO, and TREE_TYPE.

void set_range_info ( tree  ssa,
double_int  min,
double_int  max 
)

Sets the value range to SSA.

void ssanames_print_statistics ( void  )

Dump some simple statistics regarding the re-use of SSA_NAME nodes.

References gcc_assert, and TREE_CODE.