diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 37b453de9b99a..faeec44a7d4a7 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -3689,6 +3689,9 @@ CodeGenModule::GetOrCreateLLVMGlobal(StringRef MangledName, } } } + + if (LangOpts.SYCLIsDevice) + maybeEmitPipeStorageMetadata(D, GV, *this); } if (GV->isDeclaration()) @@ -3700,9 +3703,6 @@ CodeGenModule::GetOrCreateLLVMGlobal(StringRef MangledName, assert(getContext().getTargetAddressSpace(ExpectedAS) == Ty->getPointerAddressSpace()); - if (LangOpts.SYCLIsDevice) - maybeEmitPipeStorageMetadata(D, GV, *this); - if (AddrSpace != ExpectedAS) return getTargetCodeGenInfo().performAddrSpaceCast(*this, GV, AddrSpace, ExpectedAS, Ty);