osprey/kg++fe/gnu/alias.c File Reference

#include "config.h"
#include "system.h"
#include "rtl.h"
#include "tree.h"
#include "tm_p.h"
#include "function.h"
#include "expr.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "basic-block.h"
#include "flags.h"
#include "output.h"
#include "toplev.h"
#include "cselib.h"
#include "splay-tree.h"
#include "ggc.h"
#include "langhooks.h"
#include "target.h"
#include "gt-alias.h"

Include dependency graph for alias.c:

Go to the source code of this file.

Data Types

type  alias_set_entry

Defines

#define SIZE_FOR_MODE(X)   (GET_MODE_SIZE (GET_MODE (X)))
#define DIFFERENT_ALIAS_SETS_P(MEM1, MEM2)   mems_in_disjoint_alias_sets_p (MEM1, MEM2)
#define MAX_ALIAS_LOOP_PASSES   10
#define REG_BASE_VALUE(X)
#define OUTGOING_REGNO(N)   N

Functions/Subroutines

static int rtx_equal_for_memref_p PARAMS ((rtx, rtx))
static rtx find_symbolic_term PARAMS ((rtx))
static int memrefs_conflict_p PARAMS ((int, rtx, int, rtx, HOST_WIDE_INT))
static void record_set PARAMS ((rtx, rtx, void *))
static int base_alias_check PARAMS ((rtx, rtx, enum machine_mode, enum machine_mode))
static int insert_subset_children PARAMS ((splay_tree_node, void *))
static tree find_base_decl PARAMS ((tree))
static alias_set_entry
get_alias_set_entry 
PARAMS ((HOST_WIDE_INT))
static rtx
fixed_scalar_and_varying_struct_p 
PARAMS ((rtx, rtx, rtx, rtx, int(*)(rtx, int)))
static bool
nonoverlapping_component_refs_p 
PARAMS ((tree, tree))
static rtx
adjust_offset_for_component_ref 
PARAMS ((tree, rtx))
static int write_dependence_p PARAMS ((rtx, rtx, int))
static int nonlocal_mentioned_p_1 PARAMS ((rtx *, void *))
static GTY ((length("reg_base_value_size")))
static int mems_in_disjoint_alias_sets_p (rtx mem1, rtx mem2)
static int insert_subset_children (splay_tree_node node, void *data)
int alias_sets_conflict_p (HOST_WIDE_INT set1, HOST_WIDE_INT set2)
int readonly_fields_p (tree type)
int objects_must_conflict_p (tree t1, tree t2)
static tree find_base_decl (tree t)
int can_address_p (tree t)
HOST_WIDE_INT get_alias_set (tree t)
HOST_WIDE_INT new_alias_set ()
void record_alias_subset (HOST_WIDE_INT superset, HOST_WIDE_INT subset)
void record_component_aliases (tree type)
HOST_WIDE_INT get_varargs_alias_set ()
HOST_WIDE_INT get_frame_alias_set ()
static rtx find_base_value (rtx src)
static void record_set (rtx dest, rtx set, data)
void record_base_value (unsigned int regno, rtx val, int invariant)
void clear_reg_alias_info (rtx reg)
rtx canon_rtx (rtx x)
static int rtx_equal_for_memref_p (rtx x, rtx y)
static rtx find_symbolic_term (rtx x)
static rtx find_base_term (rtx x)
static int base_alias_check (rtx x, rtx y, enum machine_mode x_mode, enum machine_mode y_mode)
rtx get_addr (rtx x)
rtx addr_side_effect_eval (rtx addr, int size, int n_refs)
static int memrefs_conflict_p (int xsize, rtx x, int ysize, rtx y, HOST_WIDE_INT c)
int read_dependence (rtx mem, rtx x)
static rtx fixed_scalar_and_varying_struct_p (rtx mem1, rtx mem2, rtx mem1_addr, rtx mem2_addr, int *varies_p)
static int aliases_everything_p (rtx mem)
static bool nonoverlapping_component_refs_p (tree x, tree y)
static tree decl_for_component_ref (tree x)
static rtx adjust_offset_for_component_ref (tree x, rtx offset)
static int nonoverlapping_memrefs_p (rtx x, rtx y)
int true_dependence (rtx mem, enum machine_mode mem_mode, rtx x, int *varies)
int canon_true_dependence (rtx mem, enum machine_mode mem_mode, rtx mem_addr, rtx x, int *varies)
static int write_dependence_p (rtx mem, rtx x, int writep)
int anti_dependence (rtx mem, rtx x)
int output_dependence (rtx mem, rtx x)
static int nonlocal_mentioned_p_1 (rtx *loc, data)
static int nonlocal_mentioned_p (rtx x)
static int nonlocal_referenced_p_1 (rtx *loc, data)
static int nonlocal_referenced_p (rtx x)
static int nonlocal_set_p_1 (rtx *loc, data)
static int nonlocal_set_p (rtx x)
void mark_constant_function ()
void init_alias_once ()
void init_alias_analysis ()
void end_alias_analysis ()

Variables

static char * reg_seen
static int unique_id


Define Documentation

#define DIFFERENT_ALIAS_SETS_P ( MEM1,
MEM2   )     mems_in_disjoint_alias_sets_p (MEM1, MEM2)

Definition at line 130 of file alias.c.

Referenced by canon_true_dependence(), true_dependence(), and write_dependence_p().

#define MAX_ALIAS_LOOP_PASSES   10

Definition at line 135 of file alias.c.

Referenced by init_alias_analysis().

#define OUTGOING_REGNO (  )     N

#define REG_BASE_VALUE ( X   ) 

Value:

(REGNO (X) < reg_base_value_size \
   ? reg_base_value[REGNO (X)] : 0)

Referenced by find_base_term(), and record_base_value().

#define SIZE_FOR_MODE ( X   )     (GET_MODE_SIZE (GET_MODE (X)))

Definition at line 124 of file alias.c.

Referenced by canon_true_dependence(), true_dependence(), and write_dependence_p().


Function Documentation

rtx addr_side_effect_eval ( rtx  addr,
int  size,
int  n_refs 
)

Definition at line 1505 of file alias.c.

References GEN_INT, gen_rtx_PLUS, GET_CODE, GET_MODE, offset, and XEXP.

Referenced by memrefs_conflict_p().

static rtx adjust_offset_for_component_ref ( tree  x,
rtx  offset 
) [static]

int alias_sets_conflict_p ( HOST_WIDE_INT  set1,
HOST_WIDE_INT  set2 
)

static int aliases_everything_p ( rtx  mem  )  [static]

Definition at line 1823 of file alias.c.

References AND, GET_CODE, and XEXP.

Referenced by canon_true_dependence(), true_dependence(), and write_dependence_p().

int anti_dependence ( rtx  mem,
rtx  x 
)

static int base_alias_check ( rtx  x,
rtx  y,
enum machine_mode  x_mode,
enum machine_mode  y_mode 
) [static]

int can_address_p ( tree  t  ) 

rtx canon_rtx ( rtx  x  ) 

int canon_true_dependence ( rtx  mem,
enum machine_mode  mem_mode,
rtx  mem_addr,
rtx  x,
int *  varies 
)

void clear_reg_alias_info ( rtx  reg  ) 

Definition at line 1052 of file alias.c.

static tree decl_for_component_ref ( tree  x  )  [static]

Definition at line 1895 of file alias.c.

References DECL_P, NULL_TREE, TREE_CODE, and TREE_OPERAND.

Referenced by nonoverlapping_memrefs_p().

void end_alias_analysis ( void   ) 

static tree find_base_decl ( tree  t  )  [static]

Definition at line 365 of file alias.c.

References d1, d2, error_mark_node, POINTER_TYPE_P, TREE_CODE, TREE_CODE_CLASS, TREE_OPERAND, and TREE_TYPE.

Referenced by find_base_decl(), and get_alias_set().

static rtx find_base_term ( rtx  x  )  [static]

static rtx find_base_value ( rtx  src  )  [static]

static rtx find_symbolic_term ( rtx  x  )  [static]

Definition at line 1235 of file alias.c.

References GET_CODE, GET_RTX_CLASS, GET_RTX_FORMAT, GET_RTX_LENGTH, i, and XEXP.

Referenced by find_symbolic_term().

static rtx fixed_scalar_and_varying_struct_p ( rtx  mem1,
rtx  mem2,
rtx  mem1_addr,
rtx  mem2_addr,
int *  varies_p 
) [static]

rtx get_addr ( rtx  x  ) 

HOST_WIDE_INT get_alias_set ( tree  t  ) 

HOST_WIDE_INT get_frame_alias_set ( void   ) 

HOST_WIDE_INT get_varargs_alias_set ( void   ) 

static GTY ( (length("reg_base_value_size"))   )  [static]

void init_alias_analysis ( void   ) 

void init_alias_once ( void   ) 

Definition at line 2659 of file alias.c.

Referenced by backend_init().

static int insert_subset_children ( splay_tree_node  node,
void data 
) [static]

Definition at line 249 of file alias.c.

References splay_tree_insert().

Referenced by record_alias_subset().

void mark_constant_function ( void   ) 

Definition at line 2609 of file alias.c.

Referenced by rest_of_compilation(), and rest_of_handle_cfg().

static int memrefs_conflict_p ( int  xsize,
rtx  x,
int  ysize,
rtx  y,
HOST_WIDE_INT  c 
) [static]

static int mems_in_disjoint_alias_sets_p ( rtx  mem1,
rtx  mem2 
) [static]

Definition at line 225 of file alias.c.

References abort, alias_sets_conflict_p(), flag_strict_aliasing, and MEM_ALIAS_SET.

HOST_WIDE_INT new_alias_set ( void   ) 

static int nonlocal_mentioned_p ( rtx  x  )  [static]

static int nonlocal_mentioned_p_1 ( rtx loc,
data   
) [static]

static int nonlocal_referenced_p ( rtx  x  )  [static]

static int nonlocal_referenced_p_1 ( rtx loc,
data   
) [static]

static int nonlocal_set_p ( rtx  x  )  [static]

static int nonlocal_set_p_1 ( rtx loc,
data   
) [static]

Definition at line 2530 of file alias.c.

References GET_CODE, MEM_VOLATILE_P, nonlocal_mentioned_p(), nonlocal_set_p(), SET, SET_DEST, SET_SRC, USE, x, and XEXP.

Referenced by nonlocal_set_p().

static bool nonoverlapping_component_refs_p ( tree  x,
tree  y 
) [static]

Definition at line 1838 of file alias.c.

References DECL_FIELD_CONTEXT, TREE_CODE, and TREE_OPERAND.

Referenced by nonoverlapping_memrefs_p().

static int nonoverlapping_memrefs_p ( rtx  x,
rtx  y 
) [static]

int objects_must_conflict_p ( tree  t1,
tree  t2 
)

Definition at line 323 of file alias.c.

Referenced by add_alias_set_conflicts(), and assign_stack_temp_for_type().

int output_dependence ( rtx  mem,
rtx  x 
)

static int nonlocal_mentioned_p_1 PARAMS ( (rtx *, void *)   )  [static]

static int write_dependence_p PARAMS ( (rtx, rtx, int)   )  [static]

static rtx adjust_offset_for_component_ref PARAMS ( (tree, rtx  )  [static]

static bool nonoverlapping_component_refs_p PARAMS ( (tree, tree  )  [static]

static rtx fixed_scalar_and_varying_struct_p PARAMS ( (rtx, rtx, rtx, rtx, int(*)(rtx, int))   )  [static]

static alias_set_entry get_alias_set_entry PARAMS ( (HOST_WIDE_INT)   )  [static]

static tree find_base_decl PARAMS ( (tree  )  [static]

static int insert_subset_children PARAMS ( (splay_tree_node, void *)   )  [static]

static int base_alias_check PARAMS ( (rtx, rtx, enum machine_mode, enum machine_mode  )  [static]

static void record_set PARAMS ( (rtx, rtx, void *)   )  [static]

static int memrefs_conflict_p PARAMS ( (int, rtx, int, rtx, HOST_WIDE_INT)   )  [static]

static rtx find_symbolic_term PARAMS ( (rtx  )  [static]

static int rtx_equal_for_memref_p PARAMS ( (rtx, rtx  )  [static]

int read_dependence ( rtx  mem,
rtx  x 
)

Definition at line 1780 of file alias.c.

Referenced by Is_There_OP_Dependence(), and sched_analyze_2().

int readonly_fields_p ( tree  type  ) 

Definition at line 299 of file alias.c.

References TREE_CHAIN, TREE_CODE, TREE_READONLY, TREE_TYPE, and TYPE_FIELDS.

Referenced by expand_expr(), objects_must_conflict_p(), and readonly_fields_p().

static void record_alias_subset ( HOST_WIDE_INT  superset,
HOST_WIDE_INT  subset 
)

Definition at line 626 of file alias.c.

Referenced by get_alias_set(), and record_component_aliases().

void record_base_value ( unsigned int  regno,
rtx  val,
int  invariant 
)

void record_component_aliases ( tree  type  ) 

Definition at line 685 of file alias.c.

Referenced by get_alias_set().

static void record_set ( rtx  dest,
rtx  set,
data   
) [static]

Definition at line 931 of file alias.c.

References abort, AND, find_base_value(), fixed_regs, GEN_INT, gen_rtx_ADDRESS, GET_CODE, MINUS, NULL_RTX, PLUS, Pmode, REG, REGNO, SET_SRC, src, and XEXP.

Referenced by init_alias_analysis().

static int rtx_equal_for_memref_p ( rtx  x,
rtx  y 
) [static]

int true_dependence ( rtx  mem,
enum machine_mode  mem_mode,
rtx  x,
int *  varies 
)

static int write_dependence_p ( rtx  mem,
rtx  x,
int  writep 
) [static]


Variable Documentation

char* reg_seen [static]

Definition at line 924 of file alias.c.

int unique_id [static]

Definition at line 928 of file alias.c.


Generated on Wed Apr 8 15:11:18 2009 for Open64 by  doxygen 1.5.6