[PATCH] D40275: [CUDA] Report "unsupported VLA" errors only on device side.

Jonas Hahnfeld via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 20 16:59:57 PST 2017


Hahnfeld added a comment.

In https://reviews.llvm.org/D40275#930981, @tra wrote:

> In https://reviews.llvm.org/D40275#930948, @Hahnfeld wrote:
>
> > In https://reviews.llvm.org/D39505 @rjmccall requested that the check should be made independent of the language. To preserve this, I think the CUDA specific checks should be added to the generic case instead of restricting its evaluation.
>
>
> I'm not sure what exactly you or @rjmccall  have in mind. Specifically - what is the 'generic case' CUDA checks should be added to? Could you give me an example?


Not supporting VLAs is a property of the target we are compiling for, see newly added `Context.getTargetInfo().isVLASupported()`. So neither CUDA nor OpenMP are special cases in general, it's rather that the targeted architecture doesn't support that feature. What is a special case though is that both CUDA and OpenMP analyze the complete host code again and we need to suppress the diagnostic if the VLA is encountered in the host code that is never codegen'd for the device. For OpenMP, this special case is encoded in `shouldDiagnoseTargetSupportFromOpenMP` (a horrible name - suggestions welcome!) and I think you should add a similar check for CUDA.


https://reviews.llvm.org/D40275





More information about the cfe-commits mailing list