On Wed, Jan 7, 2009 at 5:27 PM, Ian Lance Taylor <i...@google.com> wrote:
> "Richard Guenther" <richard.guent...@gmail.com> writes:
>
>> As there is no hardware implementation of AVX available I think
>> we definitely should stay with 16 for 4.4.
>
> That makes sense.
>
>> And IMNSHO also for
>> all future - __attribute__((aligned)) is part of the ABI, and if it is
>> not the only user of BIGGEST_ALIGNMENT then BIGGEST_ALIGNMENT
>> should be properly split between an ABI part and an optimization
>> related part.
>
> I certainly agree that they should be split.  However, I don't agree
> that the value should be fixed for the future, if that is indeed what
> you are saying.  __attribute__ ((aligned)) is very useful for use with
> portable code.  It should correctly reflect the requirements of the
> processor.
>
> That is, there are two conflicting requirements: maintaining a stable
> ABI on a single platform, and supporting a cross-platform API.  I
> would argue that code which runs on a single platform and needs a
> stable ABI should avoid __attribute__ ((aligned)).  That leaves us
> with the case of a cross-platform API which wants to present a stable
> ABI on each platform.  (gcc's unwind code could fall into this
> category, although it's not clear to me that the alignment is actually
> exposed in a way that it matters.)  Is there a way that we can handle
> that case that is better than simply documenting changes?

I agree with you if I interpret "cross-platform" as for example
ppc vs. x86.  But certainly not if it is x86_64 vs. x86_64 -mavx.

Richard.

Reply via email to