diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2002-01-27 18:29:33 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2002-01-27 13:29:33 -0500 |
commit | 917afb0c3fa15b32383bdfbc13a481012c42fcb4 (patch) | |
tree | 4c36f941d21f80038408fabd59032302b6791807 | |
parent | f70a54cb876ecdde60b6ea9caa1e730b360f3272 (diff) | |
download | gcc-917afb0c3fa15b32383bdfbc13a481012c42fcb4.zip gcc-917afb0c3fa15b32383bdfbc13a481012c42fcb4.tar.gz gcc-917afb0c3fa15b32383bdfbc13a481012c42fcb4.tar.bz2 |
emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode if not STRICT_ALIGNMENT.
* emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
if not STRICT_ALIGNMENT.
* rtl.h (MEM_ALIGN): Likewise.
From-SVN: r49268
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 3 | ||||
-rw-r--r-- | gcc/rtl.h | 8 |
3 files changed, 12 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2b460a9..c245eea 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Sun Jan 27 13:23:40 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode + if not STRICT_ALIGNMENT. + * rtl.h (MEM_ALIGN): Likewise. + 2002-01-27 Craig Rodrigues <rodrigc@gcc.gnu.org> * doc/invoke.texi (-fdump-translation-unit): Revert this diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 37f0d9f..2f3e100 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -292,7 +292,8 @@ get_mem_attrs (alias, expr, offset, size, align, mode) && (size == 0 || (mode != BLKmode && GET_MODE_SIZE (mode) == INTVAL (size))) && (align == BITS_PER_UNIT - || (mode != BLKmode && align == GET_MODE_ALIGNMENT (mode)))) + || (STRICT_ALIGNMENT + && mode != BLKmode && align == GET_MODE_ALIGNMENT (mode)))) return 0; attrs.alias = alias; @@ -926,12 +926,12 @@ do { \ : GET_MODE (RTX) != BLKmode ? GEN_INT (GET_MODE_SIZE (GET_MODE (RTX))) \ : 0) -/* For a MEM rtx, the alignment in bits. */ +/* For a MEM rtx, the alignment in bits. We can use the alignment of the + mode as a default when STRICT_ALIGNMENT, but not if not. */ #define MEM_ALIGN(RTX) \ (MEM_ATTRS (RTX) != 0 ? MEM_ATTRS (RTX)->align \ - : GET_MODE (RTX) != BLKmode ? GET_MODE_ALIGNMENT (GET_MODE (RTX)) \ - : BITS_PER_UNIT) - + : (STRICT_ALIGNMENT && GET_MODE (RTX) != BLKmode \ + ? GET_MODE_ALIGNMENT (GET_MODE (RTX)) : BITS_PER_UNIT)) /* Copy the attributes that apply to memory locations from RHS to LHS. */ #define MEM_COPY_ATTRIBUTES(LHS, RHS) \ |