aboutsummaryrefslogtreecommitdiff
path: root/gcc/alias.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2000-05-20 13:28:13 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2000-05-20 09:28:13 -0400
commitdc1618bcad7b750f862a01b1a620c49390e578e5 (patch)
tree8e4c5560417631a9c39228f416dbb994727e10b5 /gcc/alias.c
parentde467fe702dde575e78d7f07fa2d9189273f99cc (diff)
downloadgcc-dc1618bcad7b750f862a01b1a620c49390e578e5.zip
gcc-dc1618bcad7b750f862a01b1a620c49390e578e5.tar.gz
gcc-dc1618bcad7b750f862a01b1a620c49390e578e5.tar.bz2
alias.c (aliases_everything_p): Don't special-case QImode here.
* alias.c (aliases_everything_p): Don't special-case QImode here. * c-common.c (c_get_alias_set): Do it here. Handle BIT_FIELD_REF by getting alias info for arg. Use POINTER_TYPE_P. From-SVN: r34050
Diffstat (limited to 'gcc/alias.c')
-rw-r--r--gcc/alias.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/gcc/alias.c b/gcc/alias.c
index 56dfc9d..897c27d 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -1213,14 +1213,12 @@ memrefs_conflict_p (xsize, x, ysize, y, c)
changed. A volatile and non-volatile reference can be interchanged
though.
- A MEM_IN_STRUCT reference at a non-QImode non-AND varying address can never
- conflict with a non-MEM_IN_STRUCT reference at a fixed address. We must
- allow QImode aliasing because the ANSI C standard allows character
- pointers to alias anything. We are assuming that characters are
- always QImode here. We also must allow AND addresses, because they may
- generate accesses outside the object being referenced. This is used to
- generate aligned addresses from unaligned addresses, for instance, the
- alpha storeqi_unaligned pattern. */
+ A MEM_IN_STRUCT reference at a non-AND varying address can never
+ conflict with a non-MEM_IN_STRUCT reference at a fixed address. We
+ also must allow AND addresses, because they may generate accesses
+ outside the object being referenced. This is used to generate
+ aligned addresses from unaligned addresses, for instance, the alpha
+ storeqi_unaligned pattern. */
/* Read dependence: X is read after read in MEM takes place. There can
only be a dependence here if both reads are volatile. */
@@ -1269,10 +1267,6 @@ static int
aliases_everything_p (mem)
rtx mem;
{
- if (GET_MODE (mem) == QImode)
- /* ANSI C says that a `char*' can point to anything. */
- return 1;
-
if (GET_CODE (XEXP (mem, 0)) == AND)
/* If the address is an AND, its very hard to know at what it is
actually pointing. */