> 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 [EMAIL PROTECTED]