"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?

Ian

Reply via email to