[Openmp-commits] [PATCH] D95928: [OpenMP] Delay more diagnostics of potentially non-emitted code

Johannes Doerfert via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Mon Feb 15 11:03:11 PST 2021

jdoerfert marked 2 inline comments as done.
jdoerfert added inline comments.

Comment at: clang/lib/Sema/SemaDecl.cpp:18345
   if (LangOpts.OpenMPIsDevice) {
+    // In OpenMP device mode we will not emit host only functions, or functions
+    // we don't need due to their linkage.
JonChesterfield wrote:
> What catches a static function whose address is taken?
I don't know where but the existing logic in `GetGVALinkageForFunction` seems to handle this just fine. I marked the tests I introduced for such cases below.

Comment at: clang/lib/Sema/SemaDecl.cpp:18376
+  if (Final && LangOpts.OpenMP && !LangOpts.CUDA)
+    return FunctionEmissionStatus::Emitted;
JonChesterfield wrote:
> Does LangOpts.HIP imply LandOpts.CUDA? I think it is intended to. I think I've seen this pattern (is openmp and is not cuda) elsewhere, perhaps we're missing a predicate.
I don't know. This is a reinterpretation of the conditional we had, which checked this in a different way but the intention is the same. There we also never looked for HIP, IIRC.

Comment at: clang/test/OpenMP/nvptx_unsupported_type_messages.cpp:164
+// expected-note at +1 {{called by 'external'}}
   void *p6 = reinterpret_cast<void*>(&ld_use4);
Here we test static/inline function with taken address.

  rG LLVM Github Monorepo



More information about the Openmp-commits mailing list