This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

OMP4/cilkplus: simd clone function mangling


Hi folks.

Both OMP4 and Cilk Plus provide mechanisms for simd function cloning. In OMP4 it's "#pragma omp declare simd" and in Cilk Plus they are "elemental functions" (or "simd-enabled functions" in their Intel's latest nomenclature). For lack of a better term, I'll call them simd clones.

We need a generic way of representing the clone information all the way through to the vectorizer, as well as provide unique mangling for the simd functions. The current patch does both. Currently nothing is done with the information, but I wanted to get this out and get feedback as this will affect not only OMP4 and Cilk Plus, but possibly OpenACC and others-- and later, the vectorizer.

Intel's "Vector Function ABI v0.9.5" document explains how their mangling and ABI works for Cilk Plus, so this seems like a good start. I have adapted the algorithm to use a more generic interface for either non-x86* or non-CilkPlus.

I'd like to keep/commit this in the gomp4 branch, since it has a complete parsing implementation of "#pragma omp declare simd".

Tested on x86-64 Linux on the gomp-4_0-branch.

OK for branch?

Attachment: curr
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]