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

Go to the source code of this file.

Data Structures

struct  pt_solution
struct  ao_ref_s


typedef struct ao_ref_s ao_ref


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)


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

Function Documentation

alias_set_type ao_ref_alias_set ( ao_ref )
tree ao_ref_base ( ao_ref )
void ao_ref_init ( ao_ref ,
   In tree-ssa-alias.c  
void ao_ref_init_from_ptr_and_size ( ao_ref ,
tree  ,
bool call_may_clobber_ref_p ( gimple  ,
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
     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 *  ,
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_set_bit(), gimple_nop_p(), gimple_phi_arg_def(), gimple_phi_num_args(), gimple_vuse(), 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 ,
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  ,
void pt_solution_set_var ( struct pt_solution ,
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  ,
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 
   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  ,
bool refs_anti_dependent_p ( tree  ,
bool refs_may_alias_p ( tree  ,
bool refs_may_alias_p_1 ( ao_ref ,
ao_ref ,
bool refs_output_dependent_p ( tree  ,
bool stmt_kills_ref_p ( gimple  ,
bool stmt_may_clobber_global_p ( gimple  )
bool stmt_may_clobber_ref_p ( gimple  ,
bool stmt_may_clobber_ref_p_1 ( gimple  ,
unsigned int walk_aliased_vdefs ( ao_ref ,
tree  ,
bool(*)(ao_ref *, tree, void *)  ,
void *  ,
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.