diff options
author | Steven Bosscher <stevenb.gcc@gmail.com> | 2006-02-28 21:01:20 +0000 |
---|---|---|
committer | Steven Bosscher <steven@gcc.gnu.org> | 2006-02-28 21:01:20 +0000 |
commit | 63292ebfb4150f957217ca6243dd6de458242591 (patch) | |
tree | 1859ade00de5bf4460d501f6e70a6779463927e6 | |
parent | d3b726902460a92cefbb1be7472d2cafece201ed (diff) | |
download | gcc-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/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/alias.c | 61 | ||||
-rw-r--r-- | gcc/alias.h | 1 |
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 |