[RFC, VECTOR ABI] Allow __attribute__((vector)) in GCC by default.
Jeff Law
law@redhat.com
Wed Oct 7 17:09:00 GMT 2015
On 10/05/2015 07:24 AM, Joseph Myers wrote:
> On Mon, 5 Oct 2015, Kirill Yukhin wrote:
>
>> To enable vectorization of loops w/ calls to math functions it is reasonable
>> to enable parsing of attribute vector for functions unconditionally and
>> change GlibC's header file not to use `omp declare simd', but use
>> __attribute__((vector)) instead.
>
> I assume you mean __vector__, for namespace reasons. Obviously you need
> appropriate GCC version conditionals in the headers to use the attribute
> only when supported. In addition, (a) this attribute doesn't seem to be
> documented in extend.texi, and you'll need to include documentation in
> your GCC patch that makes this a generic extension rather than just part
> of Cilkplus, and (b) you'll need to agree with the x86_64 ABI mailing list
> an extension of the ABI document (as attached to
> <https://sourceware.org/glibc/wiki/libmvec>) to cover this attribute, and
> update the document there.
I'm not sure why this attribute isn't documented, but clearly that
should be fixed.
From the GCC side, I don't see a compelling reason to keep this
attribute conditional on Cilk+ support. One could very easily want to
use the math library's vector entry points independent of OpenMP or Cilk+.
I thought the ABI for this stuff was consistent across the
implementations (that was certainly the goal). So aside from an example
of how to use the attribute to get calls into the vector math library,
I'm not sure what's needed. Essentially the attribute is just another
way to ensure we exploit the vector library when possible.
It also seems to me that showing that example on the libmvec page would
be advisable.
jeff
More information about the Gcc
mailing list