GCC Middle and Back End API Reference
tree-ssa-alias.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  pt_solution
struct  ao_ref_s

Typedefs

typedef struct ao_ref_s ao_ref

Functions

void ao_ref_init (ao_ref *, tree)
void ao_ref_init_from_ptr_and_size (ao_ref *, tree, tree)
tree ao_ref_base (ao_ref *)
alias_set_type ao_ref_alias_set (ao_ref *)
bool ptr_deref_may_alias_global_p (tree)
bool ptr_derefs_may_alias_p (tree, tree)
bool ref_may_alias_global_p (tree)
bool refs_may_alias_p (tree, tree)
bool refs_may_alias_p_1 (ao_ref *, ao_ref *, bool)
bool refs_anti_dependent_p (tree, tree)
bool refs_output_dependent_p (tree, tree)
bool ref_maybe_used_by_stmt_p (gimple, tree)
bool stmt_may_clobber_global_p (gimple)
bool stmt_may_clobber_ref_p (gimple, tree)
bool stmt_may_clobber_ref_p_1 (gimple, ao_ref *)
bool call_may_clobber_ref_p (gimple, tree)
bool stmt_kills_ref_p (gimple, tree)
tree get_continuation_for_phi (gimple, ao_ref *, unsigned int *, bitmap *, bool)
void * walk_non_aliased_vuses (ao_ref *, tree, void *(*)(ao_ref *, tree, unsigned int, void *), void *(*)(ao_ref *, tree, void *), void *)
unsigned int walk_aliased_vdefs (ao_ref *, tree, bool(*)(ao_ref *, tree, void *), void *, bitmap *)
void dump_alias_info (FILE *)
void debug_alias_info (void)
void dump_points_to_solution (FILE *, struct pt_solution *)
void debug (pt_solution &ref)
void debug (pt_solution *ptr)
void dump_points_to_info_for (FILE *, tree)
void debug_points_to_info_for (tree)
void dump_alias_stats (FILE *)
unsigned int compute_may_aliases (void)
bool pt_solution_empty_p (struct pt_solution *)
bool pt_solution_singleton_p (struct pt_solution *, unsigned *)
bool pt_solution_includes_global (struct pt_solution *)
bool pt_solution_includes (struct pt_solution *, const_tree)
bool pt_solutions_intersect (struct pt_solution *, struct pt_solution *)
void pt_solution_reset (struct pt_solution *)
void pt_solution_set (struct pt_solution *, bitmap, bool)
void pt_solution_set_var (struct pt_solution *, tree)
void dump_pta_stats (FILE *)
static bool ranges_overlap_p (unsigned HOST_WIDE_INT pos1, unsigned HOST_WIDE_INT size1, unsigned HOST_WIDE_INT pos2, unsigned HOST_WIDE_INT size2)

Variables

struct pt_solution ipa_escaped_pt

Typedef Documentation

typedef struct ao_ref_s ao_ref

Simplified and cached information about a memory reference tree. Used by the alias-oracle internally and externally in alternate interfaces.


Function Documentation

alias_set_type ao_ref_alias_set ( ao_ref )
tree ao_ref_base ( ao_ref )
void ao_ref_init ( ao_ref ,
tree   
)
void ao_ref_init_from_ptr_and_size ( ao_ref ,
tree  ,
tree   
)
bool call_may_clobber_ref_p ( gimple  ,
tree   
)
unsigned int compute_may_aliases ( void  )

In tree-ssa-structalias.c

Compute points-to information for every SSA_NAME pointer in the current function and compute the transitive closure of escaped variables to re-initialize the call-clobber states of local variables.

    But still dump what we have remaining it.   
 For each pointer P_i, determine the sets of variables that P_i may
 point-to.  Compute the reachability set of escaped and call-used
 variables.   


 Debugging dumps.   
 Deallocate memory used by aliasing data structures and the internal
 points-to solution.   
void debug ( pt_solution ref)
void debug ( pt_solution ptr)
void debug_alias_info ( void  )

Dump alias information on stderr.

void debug_points_to_info_for ( tree  )
void dump_alias_info ( FILE *  )
void dump_alias_stats ( FILE *  )
void dump_points_to_info_for ( FILE *  ,
tree   
)
void dump_points_to_solution ( FILE *  ,
struct pt_solution  
)
void dump_pta_stats ( FILE *  )
tree get_continuation_for_phi ( gimple  phi,
ao_ref ref,
unsigned int *  cnt,
bitmap visited,
bool  abort_on_visited 
)

Starting from a PHI node for the virtual operand of the memory reference REF find a continuation virtual operand that allows to continue walking statements dominating PHI skipping only statements that cannot possibly clobber REF. Increments *CNT for each alias disambiguation done. Returns NULL_TREE if no suitable virtual operand can be found.

 Through a single-argument PHI we can simply look through.   
 For two or more arguments try to pairwise skip non-aliasing code
 until we hit the phi argument definition that dominates the other one.   
     Find a candidate for the virtual operand which definition
     dominates those of all others.   
     Then pairwise reduce against the found candidate.   

References BITMAP_ALLOC, bitmap_set_bit, gimple_nop_p(), gimple_phi_arg_def(), gimple_phi_num_args(), gimple_vuse(), NULL, SSA_NAME_DEF_STMT, SSA_NAME_VERSION, stmt_may_clobber_ref_p_1(), visited, and walk_aliased_vdefs_1().

Referenced by stmt_kills_ref_p_1().

bool pt_solution_empty_p ( struct pt_solution )
bool pt_solution_includes ( struct pt_solution ,
const_tree   
)
bool pt_solution_includes_global ( struct pt_solution )

Referenced by debug_solution_for_var().

void pt_solution_reset ( struct pt_solution )

Referenced by set_ptr_info_alignment().

void pt_solution_set ( struct pt_solution ,
bitmap  ,
bool   
)
void pt_solution_set_var ( struct pt_solution ,
tree   
)
bool pt_solution_singleton_p ( struct pt_solution ,
unsigned *   
)
bool pt_solutions_intersect ( struct pt_solution ,
struct pt_solution  
)
bool ptr_deref_may_alias_global_p ( tree  )
bool ptr_derefs_may_alias_p ( tree  ,
tree   
)
static bool ranges_overlap_p ( unsigned HOST_WIDE_INT  pos1,
unsigned HOST_WIDE_INT  size1,
unsigned HOST_WIDE_INT  pos2,
unsigned HOST_WIDE_INT  size2 
)
inlinestatic

Return true, if the two ranges [POS1, SIZE1] and [POS2, SIZE2] overlap. SIZE1 and/or SIZE2 can be (unsigned)-1 in which case the range is open-ended. Otherwise return false.

Referenced by fold_builtin_logarithm().

bool ref_may_alias_global_p ( tree  )
bool ref_maybe_used_by_stmt_p ( gimple  ,
tree   
)
bool refs_anti_dependent_p ( tree  ,
tree   
)
bool refs_may_alias_p ( tree  ,
tree   
)
bool refs_may_alias_p_1 ( ao_ref ,
ao_ref ,
bool   
)
bool refs_output_dependent_p ( tree  ,
tree   
)
bool stmt_kills_ref_p ( gimple  ,
tree   
)
bool stmt_may_clobber_global_p ( gimple  )
bool stmt_may_clobber_ref_p ( gimple  ,
tree   
)
bool stmt_may_clobber_ref_p_1 ( gimple  ,
ao_ref  
)
unsigned int walk_aliased_vdefs ( ao_ref ,
tree  ,
bool(*)(ao_ref *, tree, void *)  ,
void *  ,
bitmap  
)
void* walk_non_aliased_vuses ( ao_ref ,
tree  ,
void *  *)(ao_ref *, tree, unsigned int, void *,
void *  *)(ao_ref *, tree, void *,
void *   
)

Variable Documentation

struct pt_solution ipa_escaped_pt

IPA PTA solutions for ESCAPED.