[clang] [OpenCL] Put constant initializer globals into constant addrspace (PR #90048)

Eli Friedman via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 29 13:39:16 PDT 2024


================
@@ -535,20 +535,24 @@ void AggExprEmitter::EmitArrayInit(Address DestPtr, llvm::ArrayType *AType,
       elementType.isTriviallyCopyableType(CGF.getContext())) {
     CodeGen::CodeGenModule &CGM = CGF.CGM;
     ConstantEmitter Emitter(CGF);
-    LangAS AS = ArrayQTy.getAddressSpace();
+    QualType GVArrayQTy = ArrayQTy;
+    if (!GVArrayQTy.hasAddressSpace())
+      GVArrayQTy = CGM.getContext().getAddrSpaceQualType(
----------------
efriedma-quic wrote:

I think you just just want `GVArrayQTy = CGM.getContext().getAddrSpaceQualType(CGM.getContext().removeAddrSpaceQualType(GVArrayQTy), CGM.GetGlobalConstantAddressSpace());`, without the "if": you want to change the address-space even if the address-space of the destination is explicitly specified.

https://github.com/llvm/llvm-project/pull/90048


More information about the cfe-commits mailing list