Skip to content

Commit 4b6c6bf

Browse files
author
iclsrc
committed
Merge from 'sycl' to 'sycl-web'
2 parents 723f4a8 + 1b762a8 commit 4b6c6bf

File tree

1,533 files changed

+92754
-7394
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,533 files changed

+92754
-7394
lines changed

clang/include/clang-c/Index.h

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3348,7 +3348,21 @@ enum CXTypeKind {
33483348
CXType_OCLIntelSubgroupAVCImeDualRefStreamin = 175,
33493349

33503350
CXType_ExtVector = 176,
3351-
CXType_Atomic = 177
3351+
CXType_Atomic = 177,
3352+
3353+
/* SPIRV builtin types. */
3354+
CXType_SampledOCLImage1dRO = 178,
3355+
CXType_SampledOCLImage1dArrayRO = 179,
3356+
CXType_SampledOCLImage1dBufferRO = 180,
3357+
CXType_SampledOCLImage2dRO = 181,
3358+
CXType_SampledOCLImage2dArrayRO = 182,
3359+
CXType_SampledOCLImage2dDepthRO = 183,
3360+
CXType_SampledOCLImage2dArrayDepthRO = 184,
3361+
CXType_SampledOCLImage2dMSAARO = 185,
3362+
CXType_SampledOCLImage2dArrayMSAARO = 186,
3363+
CXType_SampledOCLImage2dMSAADepthRO = 187,
3364+
CXType_SampledOCLImage2dArrayMSAADepthRO = 188,
3365+
CXType_SampledOCLImage3dRO = 189
33523366
};
33533367

33543368
/**

clang/include/clang/AST/ASTContext.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -976,6 +976,11 @@ class ASTContext : public RefCountedBase<ASTContext> {
976976
CanQualType ObjCBuiltinBoolTy;
977977
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
978978
CanQualType SingletonId;
979+
#include "clang/Basic/OpenCLImageTypes.def"
980+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
981+
CanQualType Sampled##SingletonId;
982+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
983+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
979984
#include "clang/Basic/OpenCLImageTypes.def"
980985
CanQualType OCLSamplerTy, OCLEventTy, OCLClkEventTy;
981986
CanQualType OCLQueueTy, OCLReserveIDTy;

clang/include/clang/AST/Type.h

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2134,9 +2134,15 @@ class alignas(8) Type : public ExtQualsTypeCommonBase {
21342134

21352135
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
21362136
bool is##Id##Type() const;
2137+
#include "clang/Basic/OpenCLImageTypes.def"
2138+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
2139+
bool isSampled##Id##Type() const;
2140+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
2141+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
21372142
#include "clang/Basic/OpenCLImageTypes.def"
21382143

21392144
bool isImageType() const; // Any OpenCL image type
2145+
bool isSampledImageType() const; // Any SPIR-V Sampled image type
21402146

21412147
bool isSamplerT() const; // OpenCL sampler_t
21422148
bool isEventT() const; // OpenCL event_t
@@ -2520,6 +2526,10 @@ class BuiltinType : public Type {
25202526
// OpenCL image types
25212527
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) Id,
25222528
#include "clang/Basic/OpenCLImageTypes.def"
2529+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) Sampled##Id,
2530+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
2531+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
2532+
#include "clang/Basic/OpenCLImageTypes.def"
25232533
// OpenCL extension types
25242534
#define EXT_OPAQUE_TYPE(ExtType, Id, Ext) Id,
25252535
#include "clang/Basic/OpenCLExtensionTypes.def"
@@ -6847,6 +6857,14 @@ inline bool Type::isDecltypeType() const {
68476857
}
68486858
#include "clang/Basic/OpenCLImageTypes.def"
68496859

6860+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
6861+
inline bool Type::isSampled##Id##Type() const { \
6862+
return isSpecificBuiltinType(BuiltinType::Sampled##Id); \
6863+
}
6864+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
6865+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
6866+
#include "clang/Basic/OpenCLImageTypes.def"
6867+
68506868
inline bool Type::isSamplerT() const {
68516869
return isSpecificBuiltinType(BuiltinType::OCLSampler);
68526870
}
@@ -6869,7 +6887,17 @@ inline bool Type::isReserveIDT() const {
68696887

68706888
inline bool Type::isImageType() const {
68716889
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) is##Id##Type() ||
6890+
return isSampledImageType() ||
6891+
#include "clang/Basic/OpenCLImageTypes.def"
6892+
false; // end boolean or operation
6893+
}
6894+
6895+
inline bool Type::isSampledImageType() const {
6896+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
6897+
isSampled##Id##Type() ||
68726898
return
6899+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
6900+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
68736901
#include "clang/Basic/OpenCLImageTypes.def"
68746902
false; // end boolean or operation
68756903
}

clang/include/clang/AST/TypeProperties.td

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -752,6 +752,12 @@ let Class = BuiltinType in {
752752
case BuiltinType::ID: return ctx.SINGLETON_ID;
753753
#include "clang/Basic/OpenCLImageTypes.def"
754754

755+
#define IMAGE_TYPE(IMGTYPE, ID, SINGLETON_ID, ACCESS, SUFFIX) \
756+
case BuiltinType::Sampled##ID: return ctx.Sampled##SINGLETON_ID;
757+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
758+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
759+
#include "clang/Basic/OpenCLImageTypes.def"
760+
755761
#define EXT_OPAQUE_TYPE(EXTTYPE, ID, EXT) \
756762
case BuiltinType::ID: return ctx.ID##Ty;
757763
#include "clang/Basic/OpenCLExtensionTypes.def"

clang/include/clang/Basic/BuiltinsNVPTX.def

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@ BUILTIN(__nvvm_read_ptx_sreg_pm1, "i", "n")
8989
BUILTIN(__nvvm_read_ptx_sreg_pm2, "i", "n")
9090
BUILTIN(__nvvm_read_ptx_sreg_pm3, "i", "n")
9191

92+
// SYCL
93+
BUILTIN(__builtin_ptx_implicit_offset, "Ui*", "nc")
94+
9295
// MISC
9396

9497
BUILTIN(__nvvm_prmt, "UiUiUiUi", "")

clang/include/clang/Basic/DiagnosticSemaKinds.td

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10905,6 +10905,8 @@ def err_sycl_restrict : Error<
1090510905
"|call a dllimport function"
1090610906
"|call a variadic function"
1090710907
"|call an undefined function without SYCL_EXTERNAL attribute"
10908+
"|use a const static or global variable that is neither zero-initialized "
10909+
"nor constant-initialized"
1090810910
"}0">;
1090910911
def err_sycl_virtual_types : Error<
1091010912
"No class with a vtable can be used in a SYCL kernel or any code included in the kernel">;

clang/include/clang/Sema/Sema.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9967,6 +9967,8 @@ class Sema final {
99679967
void addSYCLIntelPipeIOAttr(Decl *D, const AttributeCommonInfo &CI, Expr *ID);
99689968

99699969
bool checkNSReturnsRetainedReturnType(SourceLocation loc, QualType type);
9970+
bool checkAllowedSYCLInitializer(VarDecl *VD,
9971+
bool CheckValueDependent = false);
99709972

99719973
// Adds an intel_reqd_sub_group_size attribute to a particular declaration.
99729974
void addIntelReqdSubGroupSizeAttr(Decl *D, const AttributeCommonInfo &CI,
@@ -12686,7 +12688,8 @@ class Sema final {
1268612688
KernelUseAssembly,
1268712689
KernelCallDllimportFunction,
1268812690
KernelCallVariadicFunction,
12689-
KernelCallUndefinedFunction
12691+
KernelCallUndefinedFunction,
12692+
KernelConstStaticVariable
1269012693
};
1269112694

1269212695
bool isKnownGoodSYCLDecl(const Decl *D);

clang/include/clang/Serialization/ASTBitCodes.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1072,6 +1072,11 @@ class TypeIdx {
10721072
/// OpenCL image types with auto numeration
10731073
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
10741074
PREDEF_TYPE_##Id##_ID,
1075+
#include "clang/Basic/OpenCLImageTypes.def"
1076+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
1077+
PREDEF_TYPE_SAMPLED_##Id##_ID,
1078+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
1079+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
10751080
#include "clang/Basic/OpenCLImageTypes.def"
10761081
/// \brief OpenCL extension types with auto numeration
10771082
#define EXT_OPAQUE_TYPE(ExtType, Id, Ext) \

clang/lib/AST/ASTContext.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1407,6 +1407,11 @@ void ASTContext::InitBuiltinTypes(const TargetInfo &Target,
14071407
if (LangOpts.OpenCL || LangOpts.SYCLIsDevice) {
14081408
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
14091409
InitBuiltinType(SingletonId, BuiltinType::Id);
1410+
#include "clang/Basic/OpenCLImageTypes.def"
1411+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
1412+
InitBuiltinType(Sampled##SingletonId, BuiltinType::Sampled##Id);
1413+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
1414+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
14101415
#include "clang/Basic/OpenCLImageTypes.def"
14111416

14121417
InitBuiltinType(OCLSamplerTy, BuiltinType::OCLSampler);
@@ -2119,6 +2124,11 @@ TypeInfo ASTContext::getTypeInfoImpl(const Type *T) const {
21192124
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
21202125
case BuiltinType::Id:
21212126
#include "clang/Basic/OpenCLImageTypes.def"
2127+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
2128+
case BuiltinType::Sampled##Id:
2129+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
2130+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
2131+
#include "clang/Basic/OpenCLImageTypes.def"
21222132
#define EXT_OPAQUE_TYPE(ExtType, Id, Ext) \
21232133
case BuiltinType::Id:
21242134
#include "clang/Basic/OpenCLExtensionTypes.def"
@@ -6474,6 +6484,12 @@ OpenCLTypeKind ASTContext::getOpenCLTypeKind(const Type *T) const {
64746484
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
64756485
case BuiltinType::Id: \
64766486
return OCLTK_Image;
6487+
#include "clang/Basic/OpenCLImageTypes.def"
6488+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
6489+
case BuiltinType::Sampled##Id: \
6490+
return OCLTK_Image;
6491+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
6492+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
64776493
#include "clang/Basic/OpenCLImageTypes.def"
64786494

64796495
case BuiltinType::OCLClkEvent:
@@ -7057,6 +7073,11 @@ static char getObjCEncodingForPrimitiveType(const ASTContext *C,
70577073
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
70587074
case BuiltinType::Id:
70597075
#include "clang/Basic/OpenCLImageTypes.def"
7076+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
7077+
case BuiltinType::Sampled##Id:
7078+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
7079+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
7080+
#include "clang/Basic/OpenCLImageTypes.def"
70607081
#define EXT_OPAQUE_TYPE(ExtType, Id, Ext) \
70617082
case BuiltinType::Id:
70627083
#include "clang/Basic/OpenCLExtensionTypes.def"

clang/lib/AST/ASTImporter.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1028,6 +1028,12 @@ ExpectedType ASTNodeImporter::VisitBuiltinType(const BuiltinType *T) {
10281028
case BuiltinType::Id: \
10291029
return Importer.getToContext().SingletonId;
10301030
#include "clang/Basic/OpenCLImageTypes.def"
1031+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
1032+
case BuiltinType::Sampled##Id: \
1033+
return Importer.getToContext().Sampled##SingletonId;
1034+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
1035+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
1036+
#include "clang/Basic/OpenCLImageTypes.def"
10311037
#define EXT_OPAQUE_TYPE(ExtType, Id, Ext) \
10321038
case BuiltinType::Id: \
10331039
return Importer.getToContext().Id##Ty;

clang/lib/AST/ExprConstant.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10507,6 +10507,11 @@ EvaluateBuiltinClassifyType(QualType T, const LangOptions &LangOpts) {
1050710507
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
1050810508
case BuiltinType::Id:
1050910509
#include "clang/Basic/OpenCLImageTypes.def"
10510+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
10511+
case BuiltinType::Sampled##Id:
10512+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
10513+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
10514+
#include "clang/Basic/OpenCLImageTypes.def"
1051010515
#define EXT_OPAQUE_TYPE(ExtType, Id, Ext) \
1051110516
case BuiltinType::Id:
1051210517
#include "clang/Basic/OpenCLExtensionTypes.def"

clang/lib/AST/ItaniumMangle.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2819,6 +2819,14 @@ void CXXNameMangler::mangleType(const BuiltinType *T) {
28192819
type_name = "ocl_" #ImgType "_" #Suffix; \
28202820
Out << type_name.size() << type_name; \
28212821
break;
2822+
#include "clang/Basic/OpenCLImageTypes.def"
2823+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
2824+
case BuiltinType::Sampled##Id: \
2825+
type_name = "__spirv_SampledImage__" #ImgType "_" #Suffix; \
2826+
Out << type_name.size() << type_name; \
2827+
break;
2828+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
2829+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
28222830
#include "clang/Basic/OpenCLImageTypes.def"
28232831
case BuiltinType::OCLSampler:
28242832
Out << "11ocl_sampler";

clang/lib/AST/MicrosoftMangle.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2054,6 +2054,13 @@ void MicrosoftCXXNameMangler::mangleType(const BuiltinType *T, Qualifiers,
20542054
case BuiltinType::Id: \
20552055
Out << "PAUocl_" #ImgType "_" #Suffix "@@"; \
20562056
break;
2057+
#include "clang/Basic/OpenCLImageTypes.def"
2058+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
2059+
case BuiltinType::Sampled##Id: \
2060+
Out << "PAU__spirv_SampledImage__" #ImgType "_" #Suffix "@@"; \
2061+
break;
2062+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
2063+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
20572064
#include "clang/Basic/OpenCLImageTypes.def"
20582065
case BuiltinType::OCLSampler:
20592066
Out << "PA";

clang/lib/AST/NSAPI.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,11 @@ NSAPI::getNSNumberFactoryMethodKind(QualType T) const {
463463
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
464464
case BuiltinType::Id:
465465
#include "clang/Basic/OpenCLImageTypes.def"
466+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
467+
case BuiltinType::Sampled##Id:
468+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
469+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
470+
#include "clang/Basic/OpenCLImageTypes.def"
466471
#define EXT_OPAQUE_TYPE(ExtType, Id, Ext) \
467472
case BuiltinType::Id:
468473
#include "clang/Basic/OpenCLExtensionTypes.def"

clang/lib/AST/PrintfFormatString.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -785,6 +785,11 @@ bool PrintfSpecifier::fixType(QualType QT, const LangOptions &LangOpt,
785785
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
786786
case BuiltinType::Id:
787787
#include "clang/Basic/OpenCLImageTypes.def"
788+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
789+
case BuiltinType::Sampled##Id:
790+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
791+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
792+
#include "clang/Basic/OpenCLImageTypes.def"
788793
#define EXT_OPAQUE_TYPE(ExtType, Id, Ext) \
789794
case BuiltinType::Id:
790795
#include "clang/Basic/OpenCLExtensionTypes.def"

clang/lib/AST/Type.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3017,6 +3017,12 @@ StringRef BuiltinType::getName(const PrintingPolicy &Policy) const {
30173017
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
30183018
case Id: \
30193019
return "__" #Access " " #ImgType "_t";
3020+
#include "clang/Basic/OpenCLImageTypes.def"
3021+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
3022+
case Sampled##Id: \
3023+
return "__ocl_sampled_" #ImgType "_" #Suffix "_t";
3024+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
3025+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
30203026
#include "clang/Basic/OpenCLImageTypes.def"
30213027
case OCLSampler:
30223028
return "sampler_t";
@@ -4044,6 +4050,11 @@ bool Type::canHaveNullability(bool ResultIfUnknown) const {
40444050
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
40454051
case BuiltinType::Id:
40464052
#include "clang/Basic/OpenCLImageTypes.def"
4053+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
4054+
case BuiltinType::Sampled##Id:
4055+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
4056+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
4057+
#include "clang/Basic/OpenCLImageTypes.def"
40474058
#define EXT_OPAQUE_TYPE(ExtType, Id, Ext) \
40484059
case BuiltinType::Id:
40494060
#include "clang/Basic/OpenCLExtensionTypes.def"

clang/lib/AST/TypeLoc.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,11 @@ TypeSpecifierType BuiltinTypeLoc::getWrittenTypeSpec() const {
392392
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
393393
case BuiltinType::Id:
394394
#include "clang/Basic/OpenCLImageTypes.def"
395+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
396+
case BuiltinType::Sampled##Id:
397+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
398+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
399+
#include "clang/Basic/OpenCLImageTypes.def"
395400
#define EXT_OPAQUE_TYPE(ExtType, Id, Ext) \
396401
case BuiltinType::Id:
397402
#include "clang/Basic/OpenCLExtensionTypes.def"

clang/lib/Basic/Targets/NVPTX.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ class LLVM_LIBRARY_VISIBILITY NVPTXTargetInfo : public TargetInfo {
143143
// FIXME: maybe we should have a way to control this ?
144144
Opts.support("cl_khr_int64_base_atomics");
145145
Opts.support("cl_khr_int64_extended_atomics");
146+
Opts.support("cl_khr_fp16");
146147
}
147148

148149
/// \returns If a target requires an address within a target specific address

clang/lib/CodeGen/CGDebugInfo.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,13 @@ llvm::DIType *CGDebugInfo::CreateType(const BuiltinType *BT) {
704704
case BuiltinType::Id: \
705705
return getOrCreateStructPtrType("opencl_" #ImgType "_" #Suffix "_t", \
706706
SingletonId);
707+
#include "clang/Basic/OpenCLImageTypes.def"
708+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
709+
case BuiltinType::Sampled##Id: \
710+
return getOrCreateStructPtrType( \
711+
"spirv_sampled_" #ImgType "_" #Suffix "_t", Sampled##SingletonId);
712+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
713+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
707714
#include "clang/Basic/OpenCLImageTypes.def"
708715
case BuiltinType::OCLSampler:
709716
return getOrCreateStructPtrType("opencl_sampler_t", OCLSamplerDITy);

clang/lib/CodeGen/CGDebugInfo.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@ class CGDebugInfo {
7171
llvm::DIType *SelTy = nullptr;
7272
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
7373
llvm::DIType *SingletonId = nullptr;
74+
#include "clang/Basic/OpenCLImageTypes.def"
75+
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \
76+
llvm::DIType *Sampled##SingletonId = nullptr;
77+
#define IMAGE_WRITE_TYPE(Type, Id, Ext)
78+
#define IMAGE_READ_WRITE_TYPE(Type, Id, Ext)
7479
#include "clang/Basic/OpenCLImageTypes.def"
7580
llvm::DIType *OCLSamplerDITy = nullptr;
7681
llvm::DIType *OCLEventDITy = nullptr;

0 commit comments

Comments
 (0)