[PATCH] D101030: [OpenMP] Overhaul `declare target` handling

Alexey Bataev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 3 12:53:05 PDT 2021


ABataev added inline comments.


================
Comment at: clang/lib/CodeGen/CGDecl.cpp:2618
+void CodeGenModule::EmitOMPAllocateDecl(const OMPAllocateDecl *D) {
+  for (Expr *E : const_cast<OMPAllocateDecl *>(D)->varlists()) {
+    auto *DE = cast<DeclRefExpr>(E);
----------------
jdoerfert wrote:
> ABataev wrote:
> > Why need to remove constantness here?
> The problem is that the declaration, which might have been already generated in IR or not, had no address space attached before. Now we want to do that after the fact, potentially *way later*. To reuse the general codegen mechanism I modify the VarDecl (temporarily) by attaching the new address space and calling codegen again. If you have a better idea, I'm happy to change this.
Why not just create it manually rather than rely on `GetOrCreateLLVMGlobal`?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D101030/new/

https://reviews.llvm.org/D101030



More information about the llvm-commits mailing list