[PATCH] D46049: [OpenCL] Add constant address space to __func__ in AST
Anastasia Stulova via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Apr 27 03:05:50 PDT 2018
Anastasia added inline comments.
================
Comment at: lib/AST/Expr.cpp:870
+ if (C.getLangOpts().OpenCL && Ty.getAddressSpace() == LangAS::Default)
+ Ty = C.getAddrSpaceQualType(Ty, LangAS::opencl_constant);
+
----------------
bader wrote:
> As `Ty` is passed by value, shouldn't we accept only data located in constant address space?
Do you mean to assert? Currently it should be passed with `constant` AS but I thought the idea is to modify this function so we can accept `Default` AS too but then replace by `constant`.
================
Comment at: lib/Sema/SemaExpr.cpp:3057
+ ResTy = Context.getAddrSpaceQualType(ResTy, LangAS::opencl_constant);
ResTy = Context.getConstantArrayType(ResTy, LengthI, ArrayType::Normal,
/*IndexTypeQuals*/ 0);
----------------
bader wrote:
> String type can only be a constant arrays.
> Can we set constant address space inside this getter for OpenCL language?
> Or we might want constant array in other address spaces e.g. private?
Yes, I think we need to be able to declare const arrays in different ASes. I.e. this is valid code in OpenCL:
__private const int* a = ...;
Quick check for `getConstantArrayType`, it seems to be used in many different place. So I don't think I can just modify it.
https://reviews.llvm.org/D46049
More information about the cfe-commits
mailing list