[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gcc
Subject:    Re: IA64 record alignment rules, and modes?
From:       Steve Ellcey <sje () cup ! hp ! com>
Date:       2005-02-28 16:32:13
Message-ID: 200502281632.IAA23608 () hpsje ! cup ! hp ! com
[Download RAW message or body]

> Question: If we assume that a TImode would've been a more efficient mode
> to represent the record type above, would it not have been acceptable for
> the compiler to promote the alignment of this type to 128, given there
> are no apparent restrictions otherwise, or are there other C conventions
> at work that dictate otherwise?  Is there a configuration tweak that
> would've led to using TImode rather than BLKmode?

I think using TImode might work in this specific example but there are
other cases where it would definitely not work.  This is especially true
on HP-UX, which is big-endian, and where the alignment of records and
integers is different.  I.e.  passing a integer argument vs.  passing a
record containing a single integer field is different.  And then there
is the whole issue of HFA's (homogenous floating point aggregates) to
consider.  In general coming up with a specific set of criteria where an
aggregate doesn't have to be treated as such is difficult on IA64.  For
more details about the IA64 ABI see:

	http://h21007.www2.hp.com/dspp/tech/tech_TechDocumentDetailPage_IDX/1,1701,3309,00.html

Steve Ellcey
sje@cup.hp.com
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic