[llvm-dev] [RFC] Enable "#pragma omp declare simd" in the LoopVectorizer

Tian, Xinmin via llvm-dev llvm-dev at lists.llvm.org
Mon Dec 12 10:45:27 PST 2016


Thanks Renato.  Per the latest email from Francesco, it seems the current mangling mechanism works for ARM as well, except we need to use different arch "letter" for Neon-64-bit and Neon-128-bit.  

Cheers
Xinmin



-----Original Message-----
From: Renato Golin [mailto:renato.golin at linaro.org] 
Sent: Thursday, December 8, 2016 2:09 PM
To: Tian, Xinmin <xinmin.tian at intel.com>
Cc: Odeh, Saher <saher.odeh at intel.com>; llvm-dev at lists.llvm.org; Francesco.Petrogalli at arm.com; a.bataev at hotmail.com; Masten, Matt <matt.masten at intel.com>; nd <nd at arm.com>
Subject: Re: [llvm-dev] [RFC] Enable "#pragma omp declare simd" in the LoopVectorizer

On 8 December 2016 at 18:11, Tian, Xinmin via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> For name mangling, we have to follow certain rules of C/C++ (e.g. prefix needs to _ZVG ....).  David Majnemer who is the owner and stakeholder for approval for Clang and LLVM.  Also,  we need to pay attention to GCC compatibility.  I would suggest you look into how GCC VectorABI can be extended support your Arch.

Hi Xinmin,

I only began to review this proposal, and like yours, I think this is a really important feature to get in.

I agree with you on the name mangling need for C++, as well as compatibility with GCC, but according to Francesco, there are some problems that those two alone don't solve.

I'm still unsure how the simplistic mangling we have today will work around the multiple versions we could have with NEON (and in the future, SVE) without polluting the mangling quite a lot (have you seen arm_neon.h?).

So, we may get away with it for now with some basic support and the current style, but this should grow into a more flexible scheme.

About the current IR form, I don't particularly like how they're tied up together, but other than having multiple global functions defined (something like weak linkage?), I don't have a better idea right now.

Francesco,

Maybe the best thing to do right now would be to try and fit NEON alternatives in this mangling scheme and see how it goes. If anything, it'll give us an idea on what's broken, and hopefully, how to fix it.

cheers,
--renato


More information about the llvm-dev mailing list