osprey-gcc-4.2.0/gcc/alias.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "rtl.h"
#include "tree.h"
#include "tm_p.h"
#include "function.h"
#include "alias.h"
#include "emit-rtl.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 "timevar.h"
#include "target.h"
#include "cgraph.h"
#include "varray.h"
#include "tree-pass.h"
#include "ipa-type-escape.h"
#include "gt-alias.h"

Include dependency graph for alias.c:

Go to the source code of this file.

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)

Typedefs

typedef struct alias_set_entryalias_set_entry

Functions/Subroutines

struct alias_set_entry GTY (())
static int rtx_equal_for_memref_p (rtx, rtx)
static rtx find_symbolic_term (rtx)
static int memrefs_conflict_p (int, rtx, int, rtx, HOST_WIDE_INT)
static void record_set (rtx, rtx, void *)
static int base_alias_check (rtx, rtx, enum machine_mode, enum machine_mode)
static rtx find_base_value (rtx)
static int mems_in_disjoint_alias_sets_p (rtx, rtx)
static int insert_subset_children (splay_tree_node, void *)
static tree find_base_decl (tree)
static alias_set_entry get_alias_set_entry (HOST_WIDE_INT)
static rtx fixed_scalar_and_varying_struct_p (rtx, rtx, rtx, rtx, int(*)(rtx, int))
static int aliases_everything_p (rtx)
static bool nonoverlapping_component_refs_p (tree, tree)
static tree decl_for_component_ref (tree)
static rtx adjust_offset_for_component_ref (tree, rtx)
static int nonoverlapping_memrefs_p (rtx, rtx)
static int write_dependence_p (rtx, rtx, int)
static void memory_modified_1 (rtx, rtx, void *)
static void record_alias_subset (HOST_WIDE_INT, HOST_WIDE_INT)
int alias_sets_conflict_p (HOST_WIDE_INT set1, HOST_WIDE_INT set2)
int alias_sets_might_conflict_p (HOST_WIDE_INT set1, HOST_WIDE_INT set2)
int objects_must_conflict_p (tree t1, tree t2)
bool component_uses_parent_alias_set (tree t)
HOST_WIDE_INT get_alias_set (tree t)
HOST_WIDE_INT new_alias_set (void)
void record_component_aliases (tree type)
static void record_set (rtx dest, rtx set, void *data ATTRIBUTE_UNUSED)
void clear_reg_alias_info (rtx reg)
rtx get_reg_known_value (unsigned int regno)
static void set_reg_known_value (unsigned int regno, rtx val)
bool get_reg_known_equiv_p (unsigned int regno)
static void set_reg_known_equiv_p (unsigned int regno, bool val)
rtx canon_rtx (rtx x)
rtx find_base_term (rtx x)
rtx get_addr (rtx x)
static rtx addr_side_effect_eval (rtx addr, int size, int n_refs)
int read_dependence (rtx mem, rtx x)
int true_dependence (rtx mem, enum machine_mode mem_mode, rtx x, int(*varies)(rtx, int))
int canon_true_dependence (rtx mem, enum machine_mode mem_mode, rtx mem_addr, rtx x, int(*varies)(rtx, int))
int anti_dependence (rtx mem, rtx x)
int output_dependence (rtx mem, rtx x)
void init_alias_once (void)
static void memory_modified_1 (rtx x, rtx pat ATTRIBUTE_UNUSED, void *data)
bool memory_modified_in_insn_p (rtx mem, rtx insn)
void init_alias_analysis (void)
void end_alias_analysis (void)

Variables

static char * reg_seen
static int unique_id
static bool memory_modified


Define Documentation

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

Definition at line 183 of file alias.c.

#define MAX_ALIAS_LOOP_PASSES   10

Definition at line 188 of file alias.c.

#define REG_BASE_VALUE ( X   ) 

Value:

(REGNO (X) < VEC_length (rtx, reg_base_value)   \
   ? VEC_index (rtx, reg_base_value, REGNO (X)) : 0)

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

Definition at line 177 of file alias.c.


Typedef Documentation

Definition at line 149 of file alias.c.


Function Documentation

static rtx addr_side_effect_eval ( rtx  addr,
int  size,
int  n_refs 
) [static]

Definition at line 1598 of file alias.c.

References canon_rtx(), GEN_INT, gen_rtx_PLUS, GET_CODE, GET_MODE, offset, and XEXP.

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 
)

int alias_sets_might_conflict_p ( HOST_WIDE_INT  set1,
HOST_WIDE_INT  set2 
)

Definition at line 335 of file alias.c.

static int aliases_everything_p ( rtx  mem  )  [static]

Definition at line 1879 of file alias.c.

References AND, GET_CODE, and XEXP.

int anti_dependence ( rtx  mem,
rtx  x 
)

Definition at line 2343 of file alias.c.

References write_dependence_p().

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

rtx canon_rtx ( rtx  x  ) 

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

void clear_reg_alias_info ( rtx  reg  ) 

Definition at line 1077 of file alias.c.

References reg_known_equiv_p, reg_known_value, and REGNO.

bool component_uses_parent_alias_set ( tree  t  ) 

static tree decl_for_component_ref ( tree  x  )  [static]

Definition at line 1948 of file alias.c.

References DECL_P, NULL_TREE, TREE_CODE, and TREE_OPERAND.

void end_alias_analysis ( void   ) 

Definition at line 2628 of file alias.c.

References free(), ggc_free(), reg_known_equiv_p, and reg_known_value.

static tree find_base_decl ( tree  t  )  [static]

rtx find_base_term ( rtx  x  ) 

static rtx find_base_value ( rtx  src  )  [static]

static rtx find_symbolic_term ( rtx  x  )  [static]

Definition at line 1332 of file alias.c.

References find_symbolic_term(), GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, OBJECT_P, and XEXP.

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

Definition at line 1853 of file alias.c.

References flag_strict_aliasing, MEM_IN_STRUCT_P, MEM_SCALAR_P, and NULL_RTX.

rtx get_addr ( rtx  x  ) 

Definition at line 1571 of file alias.c.

References CONSTANT_P, cselib_val, CSELIB_VAL_PTR, GET_CODE, MEM, MEM_P, REG, and REG_P.

HOST_WIDE_INT get_alias_set ( tree  t  ) 

static alias_set_entry get_alias_set_entry ( HOST_WIDE_INT   )  [static]

bool get_reg_known_equiv_p ( unsigned int  regno  ) 

Definition at line 1122 of file alias.c.

References reg_known_equiv_p.

rtx get_reg_known_value ( unsigned int  regno  ) 

Definition at line 1095 of file alias.c.

References NULL, and reg_known_value.

struct alias_set_entry GTY ( ()   )  [read, write]

void init_alias_analysis ( void   ) 

void init_alias_once ( void   ) 

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

Definition at line 289 of file alias.c.

References splay_tree_node_s::key, splay_tree_insert(), and splay_tree_node_s::value.

static void memory_modified_1 ( rtx  x,
rtx pat  ATTRIBUTE_UNUSED,
void data 
) [static]

Definition at line 2387 of file alias.c.

References anti_dependence(), MEM_P, and output_dependence().

static void memory_modified_1 ( rtx  ,
rtx  ,
void  
) [static]

bool memory_modified_in_insn_p ( rtx  mem,
rtx  insn 
)

Definition at line 2400 of file alias.c.

References INSN_P, memory_modified_1(), note_stores(), and PATTERN.

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 
) [inline, static]

Definition at line 270 of file alias.c.

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

HOST_WIDE_INT new_alias_set ( void   ) 

Definition at line 629 of file alias.c.

References flag_strict_aliasing, HOST_WIDE_INT, VEC_length, and VEC_safe_push.

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

Definition at line 1893 of file alias.c.

References DECL_FIELD_CONTEXT, TREE_CODE, TREE_OPERAND, and TYPE_MAIN_VARIANT.

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

int objects_must_conflict_p ( tree  t1,
tree  t2 
)

Definition at line 350 of file alias.c.

References get_alias_set(), HOST_WIDE_INT, readonly_fields_p(), TYPE_READONLY, and TYPE_VOLATILE.

int output_dependence ( rtx  mem,
rtx  x 
)

Definition at line 2351 of file alias.c.

References write_dependence_p().

int read_dependence ( rtx  mem,
rtx  x 
)

Definition at line 1839 of file alias.c.

References MEM_VOLATILE_P.

static void record_alias_subset ( HOST_WIDE_INT  superset,
HOST_WIDE_INT  subset 
) [static]

void record_component_aliases ( tree  type  ) 

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

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

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

static void set_reg_known_equiv_p ( unsigned int  regno,
bool  val 
) [static]

Definition at line 1134 of file alias.c.

References reg_known_equiv_p.

static void set_reg_known_value ( unsigned int  regno,
rtx  val 
) [static]

Definition at line 1109 of file alias.c.

References reg_known_value.

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

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


Variable Documentation

Definition at line 2385 of file alias.c.

char* reg_seen [static]

Definition at line 953 of file alias.c.

int unique_id [static]

Definition at line 957 of file alias.c.


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