This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: RF[DA]: fix execute/931004-10.c regressions
- From: Joern Rennecke <joern dot rennecke at superh dot com>
- To: Richard Henderson <rth at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Thu, 25 Jul 2002 10:33:30 +0100
- Subject: Re: RF[DA]: fix execute/931004-10.c regressions
- Organization: SuperH UK Ltd.
- References: <3D3DB375.86D04E62@superh.com> <20020724152548.G24315@redhat.com>
Richard Henderson wrote:
>
> On Tue, Jul 23, 2002 at 08:50:13PM +0100, Joern Rennecke wrote:
> > Before your change to set_mem_attributes on Sunday, the alignment according
> > to MEM_ALIGN was that of the component, x[1], i.e. 16. Now it is that of
> > the underlying object, x, i.e. 64.
>
> Really? That shouldn't have changed. I'll look into it.
>
> > We don't have any documentation that spells out what MEM_ALIGN actually
> > means.
>
> It's the alignment of the MEM, not the MEM_EXPR, or MEM_OFFSET or
> whatever.
I've attached a patch document this.
--
--------------------------
SuperH
2430 Aztec West / Almondsbury / BRISTOL / BS32 4AQ
T:+44 1454 462330
Thu Jul 25 10:32:35 2002 J"orn Rennecke <joern.rennecke@superh.com>
* rtl.h (mem_attrs): Spell out more clearly the roles of ALIGN,
DECL and OFFSET.
Index: rtl.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/rtl.h,v
retrieving revision 1.365
diff -p -r1.365 rtl.h
*** rtl.h 19 Jul 2002 23:11:18 -0000 1.365
--- rtl.h 25 Jul 2002 09:30:35 -0000
*************** typedef struct
*** 89,94 ****
--- 89,98 ----
so MEMs that the same attributes share a data structure. This means
they cannot be modified in place. If any element is nonzero, it means
the value of the corresponding attribute is unknown. */
+ /* ALIGN is the alignment of the MEM itself, while EXPR can describe a
+ larger underlying object, which might have a stricter alignment; SIZE
+ is the size of the object, and OFFSET is the offset of the MEM within
+ that object. */
typedef struct mem_attrs GTY(())
{
HOST_WIDE_INT alias; /* Memory alias set. */