diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2000-05-20 13:28:13 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2000-05-20 09:28:13 -0400 |
commit | dc1618bcad7b750f862a01b1a620c49390e578e5 (patch) | |
tree | 8e4c5560417631a9c39228f416dbb994727e10b5 /gcc/alias.c | |
parent | de467fe702dde575e78d7f07fa2d9189273f99cc (diff) | |
download | gcc-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.c | 18 |
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. */ |