summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Bosscher <stevenb.gcc@gmail.com>2006-02-28 21:01:20 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2006-02-28 21:01:20 +0000
commit63292ebfb4150f957217ca6243dd6de458242591 (patch)
tree1859ade00de5bf4460d501f6e70a6779463927e6
parentd3b726902460a92cefbb1be7472d2cafece201ed (diff)
downloadgcc-63292ebfb4150f957217ca6243dd6de458242591.tar.gz
alias.c (alias_invariant, [...]): Remove.
* alias.c (alias_invariant, alias_invariant_size): Remove. (record_base_value): Remove. (memrefs_conflict_p): Don't look at alias_invariant. (end_alias_analysis): Don't free it. * alias.h (record_base_value): Remove prototype. From-SVN: r111574
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/alias.c61
-rw-r--r--gcc/alias.h1
3 files changed, 8 insertions, 62 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d37067c1142..2b678abac8d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2006-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
+
+ * alias.c (alias_invariant, alias_invariant_size): Remove.
+ (record_base_value): Remove.
+ (memrefs_conflict_p): Don't look at alias_invariant.
+ (end_alias_analysis): Don't free it.
+ * alias.h (record_base_value): Remove prototype.
+
2006-02-28 Paolo Bonzini <bonzini@gnu.org>
Adam Nemet <anemet@caviumnetworks.com>
diff --git a/gcc/alias.c b/gcc/alias.c
index cb5f5dbfcd1..5e152855a81 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -222,17 +222,6 @@ static GTY (()) rtx static_reg_base_value[FIRST_PSEUDO_REGISTER];
(reg_base_value && REGNO (X) < VARRAY_SIZE (reg_base_value) \
? VARRAY_RTX (reg_base_value, REGNO (X)) : 0)
-/* Vector of known invariant relationships between registers. Set in
- loop unrolling. Indexed by register number, if nonzero the value
- is an expression describing this register in terms of another.
-
- The length of this array is REG_BASE_VALUE_SIZE.
-
- Because this array contains only pseudo registers it has no effect
- after reload. */
-static GTY((length("alias_invariant_size"))) rtx *alias_invariant;
-static GTY(()) unsigned int alias_invariant_size;
-
/* Vector indexed by N giving the initial (unchanging) value known for
pseudo-register N. This array is initialized in init_alias_analysis,
and does not change until end_alias_analysis is called. */
@@ -1079,31 +1068,6 @@ record_set (rtx dest, rtx set, void *data ATTRIBUTE_UNUSED)
reg_seen[regno] = 1;
}
-/* Called from loop optimization when a new pseudo-register is
- created. It indicates that REGNO is being set to VAL. f INVARIANT
- is true then this value also describes an invariant relationship
- which can be used to deduce that two registers with unknown values
- are different. */
-
-void
-record_base_value (unsigned int regno, rtx val, int invariant)
-{
- if (invariant && alias_invariant && regno < alias_invariant_size)
- alias_invariant[regno] = val;
-
- if (regno >= VARRAY_SIZE (reg_base_value))
- VARRAY_GROW (reg_base_value, max_reg_num ());
-
- if (REG_P (val))
- {
- VARRAY_RTX (reg_base_value, regno)
- = REG_BASE_VALUE (val);
- return;
- }
- VARRAY_RTX (reg_base_value, regno)
- = find_base_value (val);
-}
-
/* Clear alias info for a register. This is used if an RTL transformation
changes the value of a register. This is used in flow by AUTO_INC_DEC
optimizations. We don't need to clear reg_base_value, since flow only
@@ -1792,25 +1756,6 @@ memrefs_conflict_p (int xsize, rtx x, int ysize, rtx y, HOST_WIDE_INT c)
return memrefs_conflict_p (xsize, x0, ysize, y0, c);
}
- case REG:
- /* Are these registers known not to be equal? */
- if (alias_invariant)
- {
- unsigned int r_x = REGNO (x), r_y = REGNO (y);
- rtx i_x, i_y; /* invariant relationships of X and Y */
-
- i_x = r_x >= alias_invariant_size ? 0 : alias_invariant[r_x];
- i_y = r_y >= alias_invariant_size ? 0 : alias_invariant[r_y];
-
- if (i_x == 0 && i_y == 0)
- break;
-
- if (! memrefs_conflict_p (xsize, i_x ? i_x : x,
- ysize, i_y ? i_y : y, c))
- return 0;
- }
- break;
-
default:
break;
}
@@ -2696,12 +2641,6 @@ end_alias_analysis (void)
reg_known_value_size = 0;
free (reg_known_equiv_p);
reg_known_equiv_p = 0;
- if (alias_invariant)
- {
- ggc_free (alias_invariant);
- alias_invariant = 0;
- alias_invariant_size = 0;
- }
}
/* Do control and data flow analysis; write some of the results to the
diff --git a/gcc/alias.h b/gcc/alias.h
index 83cc2d55094..f4ba839c6fb 100644
--- a/gcc/alias.h
+++ b/gcc/alias.h
@@ -24,7 +24,6 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
extern HOST_WIDE_INT new_alias_set (void);
extern HOST_WIDE_INT get_varargs_alias_set (void);
extern HOST_WIDE_INT get_frame_alias_set (void);
-extern void record_base_value (unsigned int, rtx, int);
extern bool component_uses_parent_alias_set (tree);
/* This alias set can be used to force a memory to conflict with all