D30739: [OpenMP] "declare simd" for AArch64 Advanced SIMD.

Tian, Xinmin via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 21 09:35:31 PDT 2017


>>>>The current infrastructure for vector names generation works only for function definition. Ideally we should implement it also for function definition provided by external libraries

Right, we need to fix that  to support  #pragma omp declare simd on  function declaration as well to enable multiple module compilation via .h files for simd functions.  

Thanks,
Xinmin

-----Original Message-----
From: Francesco Petrogalli via Phabricator [mailto:reviews at reviews.llvm.org] 
Sent: Tuesday, March 21, 2017 6:13 AM
To: francesco.petrogalli at arm.com; a.bataev at hotmail.com; cbertol at us.ibm.com; acjacob at us.ibm.com; Hahnfeld at itc.rwth-aachen.de
Cc: Tian, Xinmin <xinmin.tian at intel.com>; florian.hahn at arm.com; roger.ferreribanez at arm.com; amara.emerson at arm.com; renato.golin at linaro.org; cfe-commits at lists.llvm.org
Subject: [PATCH] D30739: [OpenMP] "declare simd" for AArch64 Advanced SIMD.

fpetrogalli added a comment.

In https://reviews.llvm.org/D30739#706292, @Hahnfeld wrote:

> In principal looks good to me although I'm not really familiar with this part. Does that work for you if you have the `declare simd` in a header file and the implementation in another file? On x86_64 I currently get:


The current infrastructure for vector names generation works only for function definition. Ideally we should implement it also for function definition provided by external libraries.

>   remark: loop not vectorized: call instruction cannot be vectorized
> 
> 
> But that seems to be a general problem inside LLVM's LoopVectorize pass...

AFAIK, none of the machinery required in LLVM to expose the mangled names in the vectorizer is present in trunk. There is a patch for x86 under review that does that: https://reviews.llvm.org/D22792


https://reviews.llvm.org/D30739





More information about the cfe-commits mailing list