"Richard Guenther" <richard.guent...@gmail.com> writes: > On Fri, Jan 9, 2009 at 4:31 PM, Ian Lance Taylor <i...@google.com> wrote: >> "Richard Guenther" <richard.guent...@gmail.com> writes: >> >>>> There are many ways to align data without exposing it in the >>>> ABI--e.g., the alignment of a global array is not part of the ABI, in >>>> that nothing breaks if the alignment is increased. Also, there are >>>> many programs which simply don't care about an external ABI. >>> >>> I'd say if programs want to use vectorization they should use >>> alignof (vector_type) instead of a magic attribute((aligned(max))). >> >> It's not that programs explicitly want to use vectorization. It's >> that auto-vectorization happens on ordinary scalar types, and programs >> want to permit that to happen without worrying about the details. > > Sure. The vectorizer increases alignment of variables for this reason. > But as people cannot adjust their memory allocator behavior they > cannot use attribute((aligned(max))) for that either. Or do you suggest > they should stick that on every decl? (which is what the autovectorizer > does)
People can and do adjust their memory allocator. Doing that in portable code requires something like attribute((aligned)). Ian