From: Richard Kenner Date: Sun, 27 Jan 2002 18:29:33 +0000 (+0000) Subject: emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode if not STRICT_ALI... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=917afb0c3fa15b32383bdfbc13a481012c42fcb4;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2b460a975b4..c245eeaddfc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Sun Jan 27 13:23:40 2002 Richard Kenner + + * 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 * doc/invoke.texi (-fdump-translation-unit): Revert this diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 37f0d9f88da..2f3e100c8db 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; diff --git a/gcc/rtl.h b/gcc/rtl.h index 4ef5c4c3420..b4745311c2e 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -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) \