[LLVMdev] different layout of structs for llc vs. llvm-gcc

Torvald Riegel torvald at se.inf.tu-dresden.de
Wed Jul 14 14:03:41 PDT 2010


On Wednesday 14 July 2010 17:57:26 Andrew Lenharth wrote:
> On Wed, Jul 14, 2010 at 10:54 AM, Eli Friedman <eli.friedman at gmail.com> 
wrote:
> > On Wed, Jul 14, 2010 at 8:33 AM, Andrew Lenharth <andrewl at lenharth.org> 
wrote:
> >> On Wed, Jul 14, 2010 at 10:26 AM, Eli Friedman <eli.friedman at gmail.com> 
wrote:
> >> Is alignment on a field propagated when the struct is split up?
> > 
> > Irrelevant here; the struct in question only has 4 byte alignment.
> 
> Not meant to be irrelevant because the though not explained.  What I
> meant to say was if the padding was accomplished with an align
> directive on the field, would the alignment be propagated to the
> global after being split up?

I tried this already (in the form of { uint32_t field; uint8_t pad[60]; 
uint32_field2;}). Alignment seems to be properly propagated, but pad[] is still 
removed, so I believe that other globals without custom alignment constraints 
could still be located in the same cachelines as field or field2.

Torvald



More information about the llvm-dev mailing list