struct alias_set_hash : int_hash <int, INT_MIN, INT_MIN + 1> {};
-struct GTY(()) alias_set_entry_d {
+struct GTY(()) alias_set_entry {
/* The alias set number, as stored in MEM_ALIAS_SET. */
alias_set_type alias_set;
/* Nonzero if is_pointer or if one of childs have has_pointer set. */
bool has_pointer;
};
-typedef struct alias_set_entry_d *alias_set_entry;
static int rtx_equal_for_memref_p (const_rtx, const_rtx);
static int memrefs_conflict_p (int, rtx, int, rtx, HOST_WIDE_INT);
machine_mode);
static rtx find_base_value (rtx);
static int mems_in_disjoint_alias_sets_p (const_rtx, const_rtx);
-static alias_set_entry get_alias_set_entry (alias_set_type);
+static alias_set_entry *get_alias_set_entry (alias_set_type);
static tree decl_for_component_ref (tree);
static int write_dependence_p (const_rtx,
const_rtx, machine_mode, rtx,
/* The splay-tree used to store the various alias set entries. */
-static GTY (()) vec<alias_set_entry, va_gc> *alias_sets;
+static GTY (()) vec<alias_set_entry *, va_gc> *alias_sets;
\f
/* Build a decomposed reference object for querying the alias-oracle
from the MEM rtx and store it in *REF.
/* Returns a pointer to the alias set entry for ALIAS_SET, if there is
such an entry, or NULL otherwise. */
-static inline alias_set_entry
+static inline alias_set_entry *
get_alias_set_entry (alias_set_type alias_set)
{
return (*alias_sets)[alias_set];
bool
alias_set_subset_of (alias_set_type set1, alias_set_type set2)
{
- alias_set_entry ase2;
+ alias_set_entry *ase2;
/* Everything is a subset of the "aliases everything" set. */
if (set2 == 0)
get_alias_set for more details. */
if (ase2 && ase2->has_pointer)
{
- alias_set_entry ase1 = get_alias_set_entry (set1);
+ alias_set_entry *ase1 = get_alias_set_entry (set1);
if (ase1 && ase1->is_pointer)
{
int
alias_sets_conflict_p (alias_set_type set1, alias_set_type set2)
{
- alias_set_entry ase1;
- alias_set_entry ase2;
+ alias_set_entry *ase1;
+ alias_set_entry *ase2;
/* The easy case. */
if (alias_sets_must_conflict_p (set1, set2))
/* Create emptry alias set entry. */
-alias_set_entry
+alias_set_entry *
init_alias_set_entry (alias_set_type set)
{
- alias_set_entry ase = ggc_alloc<alias_set_entry_d> ();
+ alias_set_entry *ase = ggc_alloc<alias_set_entry> ();
ase->alias_set = set;
ase->children = NULL;
ase->has_zero_child = false;
/* We treat pointer types specially in alias_set_subset_of. */
if (POINTER_TYPE_P (t) && set)
{
- alias_set_entry ase = get_alias_set_entry (set);
+ alias_set_entry *ase = get_alias_set_entry (set);
if (!ase)
ase = init_alias_set_entry (set);
ase->is_pointer = true;
if (flag_strict_aliasing)
{
if (alias_sets == 0)
- vec_safe_push (alias_sets, (alias_set_entry) 0);
- vec_safe_push (alias_sets, (alias_set_entry) 0);
+ vec_safe_push (alias_sets, (alias_set_entry *) NULL);
+ vec_safe_push (alias_sets, (alias_set_entry *) NULL);
return alias_sets->length () - 1;
}
else
void
record_alias_subset (alias_set_type superset, alias_set_type subset)
{
- alias_set_entry superset_entry;
- alias_set_entry subset_entry;
+ alias_set_entry *superset_entry;
+ alias_set_entry *subset_entry;
/* It is possible in complex type situations for both sets to be the same,
in which case we can ignore this operation. */