Skip to content

Commit 2d55bdf

Browse files
author
iclsrc
committed
Merge from 'sycl' to 'sycl-web'
2 parents 693881a + a4165b3 commit 2d55bdf

File tree

22 files changed

+374
-83
lines changed

22 files changed

+374
-83
lines changed

clang/lib/Driver/Driver.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4151,8 +4151,10 @@ class OffloadingActionBuilder final {
41514151
}
41524152
for (unsigned I = 0; I < ToolChains.size(); ++I) {
41534153
SYCLDeviceActions.push_back(UA);
4154-
UA->registerDependentActionInfo(
4155-
ToolChains[I], /*BoundArch=*/StringRef(), Action::OFK_SYCL);
4154+
withBoundArchForToolChain(ToolChains[I], [&](const char *BoundArch) {
4155+
UA->registerDependentActionInfo(ToolChains[I], BoundArch,
4156+
Action::OFK_SYCL);
4157+
});
41564158
}
41574159
return ABRT_Success;
41584160
}

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4624,7 +4624,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
46244624
}
46254625

46264626
// Turn on Dead Parameter Elimination Optimization with early optimizations
4627-
if (!RawTriple.isNVPTX() &&
4627+
if (!(RawTriple.isNVPTX() || RawTriple.isAMDGCN()) &&
46284628
Args.hasFlag(options::OPT_fsycl_dead_args_optimization,
46294629
options::OPT_fno_sycl_dead_args_optimization, false))
46304630
CmdArgs.push_back("-fenable-sycl-dae");
@@ -8859,7 +8859,8 @@ void SYCLPostLink::ConstructJob(Compilation &C, const JobAction &JA,
88598859
// -fsycl-device-code-split=auto
88608860

88618861
// Turn on Dead Parameter Elimination Optimization with early optimizations
8862-
if (!getToolChain().getTriple().isNVPTX() &&
8862+
if (!(getToolChain().getTriple().isNVPTX() ||
8863+
getToolChain().getTriple().isAMDGCN()) &&
88638864
TCArgs.hasFlag(options::OPT_fsycl_dead_args_optimization,
88648865
options::OPT_fno_sycl_dead_args_optimization, false))
88658866
addArgs(CmdArgs, TCArgs, {"-emit-param-info"});
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// RUN: %clangxx -### -fsycl -fsycl-targets=nvptx64-nvidia-cuda-sycldevice -fsycl-dead-args-optimization %s 2> %t.cuda.out
2+
// RUN: FileCheck %s --input-file %t.cuda.out
3+
//
4+
// RUN: %clangxx -### -fsycl -fsycl-targets=amdgcn-amd-amdhsa-sycldevice -fsycl-dead-args-optimization %s 2> %t.rocm.out
5+
// RUN: FileCheck %s --input-file %t.rocm.out
6+
// CHECK-NOT: -fenable-sycl-dae
7+
// CHECK-NOT: -emit-param-info
8+
//
9+
// RUN: %clangxx -### -fsycl -fsycl-targets=spir64-unknown-unknown-sycldevice -fsycl-dead-args-optimization %s 2> %t.out
10+
// RUN: FileCheck %s --check-prefixes=CHECK-FENABLE,CHECK-EMIT --input-file %t.out
11+
// CHECK-FENABLE: -fenable-sycl-dae
12+
// CHECK-EMIT: -emit-param-info

libdevice/cmake/modules/SYCLLibdevice.cmake

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ add_custom_command(OUTPUT ${devicelib-obj-file}
3434
${CMAKE_CURRENT_SOURCE_DIR}/crt_wrapper.cpp
3535
-o ${devicelib-obj-file}
3636
MAIN_DEPENDENCY crt_wrapper.cpp
37-
DEPENDS wrapper.h device.h spirv_vars.h clang clang-offload-bundler
37+
DEPENDS wrapper.h device.h spirv_vars.h sycl-compiler
3838
VERBATIM)
3939

4040
set(devicelib-obj-complex ${obj_binary_dir}/libsycl-complex.${lib-suffix})
@@ -44,7 +44,7 @@ add_custom_command(OUTPUT ${devicelib-obj-complex}
4444
${CMAKE_CURRENT_SOURCE_DIR}/complex_wrapper.cpp
4545
-o ${devicelib-obj-complex}
4646
MAIN_DEPENDENCY complex_wrapper.cpp
47-
DEPENDS device_complex.h device.h clang clang-offload-bundler
47+
DEPENDS device_complex.h device.h sycl-compiler
4848
VERBATIM)
4949

5050
set(devicelib-obj-complex-fp64 ${obj_binary_dir}/libsycl-complex-fp64.${lib-suffix})
@@ -54,7 +54,7 @@ add_custom_command(OUTPUT ${devicelib-obj-complex-fp64}
5454
${CMAKE_CURRENT_SOURCE_DIR}/complex_wrapper_fp64.cpp
5555
-o ${devicelib-obj-complex-fp64}
5656
MAIN_DEPENDENCY complex_wrapper_fp64.cpp
57-
DEPENDS device_complex.h device.h clang clang-offload-bundler
57+
DEPENDS device_complex.h device.h sycl-compiler
5858
VERBATIM)
5959

6060
set(devicelib-obj-cmath ${obj_binary_dir}/libsycl-cmath.${lib-suffix})
@@ -64,7 +64,7 @@ add_custom_command(OUTPUT ${devicelib-obj-cmath}
6464
${CMAKE_CURRENT_SOURCE_DIR}/cmath_wrapper.cpp
6565
-o ${devicelib-obj-cmath}
6666
MAIN_DEPENDENCY cmath_wrapper.cpp
67-
DEPENDS device_math.h device.h clang clang-offload-bundler
67+
DEPENDS device_math.h device.h sycl-compiler
6868
VERBATIM)
6969

7070
set(devicelib-obj-cmath-fp64 ${obj_binary_dir}/libsycl-cmath-fp64.${lib-suffix})
@@ -74,7 +74,7 @@ add_custom_command(OUTPUT ${devicelib-obj-cmath-fp64}
7474
${CMAKE_CURRENT_SOURCE_DIR}/cmath_wrapper_fp64.cpp
7575
-o ${devicelib-obj-cmath-fp64}
7676
MAIN_DEPENDENCY cmath_wrapper_fp64.cpp
77-
DEPENDS device_math.h device.h clang clang-offload-bundler
77+
DEPENDS device_math.h device.h sycl-compiler
7878
VERBATIM)
7979

8080
add_custom_command(OUTPUT ${spv_binary_dir}/libsycl-fallback-cassert.spv
@@ -83,7 +83,7 @@ add_custom_command(OUTPUT ${spv_binary_dir}/libsycl-fallback-cassert.spv
8383
${CMAKE_CURRENT_SOURCE_DIR}/fallback-cassert.cpp
8484
-o ${spv_binary_dir}/libsycl-fallback-cassert.spv
8585
MAIN_DEPENDENCY fallback-cassert.cpp
86-
DEPENDS wrapper.h device.h clang spirv_vars.h llvm-spirv
86+
DEPENDS wrapper.h device.h spirv_vars.h sycl-compiler
8787
VERBATIM)
8888

8989
add_custom_command(OUTPUT ${spv_binary_dir}/libsycl-fallback-cstring.spv
@@ -92,7 +92,7 @@ add_custom_command(OUTPUT ${spv_binary_dir}/libsycl-fallback-cstring.spv
9292
${CMAKE_CURRENT_SOURCE_DIR}/fallback-cstring.cpp
9393
-o ${spv_binary_dir}/libsycl-fallback-cstring.spv
9494
MAIN_DEPENDENCY fallback-cstring.cpp
95-
DEPENDS wrapper.h device.h clang spirv_vars.h llvm-spirv
95+
DEPENDS wrapper.h device.h spirv_vars.h sycl-compiler
9696
VERBATIM)
9797

9898
add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-fallback-cassert.${lib-suffix}
@@ -101,7 +101,7 @@ add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-fallback-cassert.${lib-suffi
101101
${CMAKE_CURRENT_SOURCE_DIR}/fallback-cassert.cpp
102102
-o ${obj_binary_dir}/libsycl-fallback-cassert.${lib-suffix}
103103
MAIN_DEPENDENCY fallback-cassert.cpp
104-
DEPENDS wrapper.h device.h clang spirv_vars.h clang-offload-bundler
104+
DEPENDS wrapper.h device.h spirv_vars.h sycl-compiler
105105
VERBATIM)
106106

107107
add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-fallback-cstring.${lib-suffix}
@@ -110,7 +110,7 @@ add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-fallback-cstring.${lib-suffi
110110
${CMAKE_CURRENT_SOURCE_DIR}/fallback-cstring.cpp
111111
-o ${obj_binary_dir}/libsycl-fallback-cstring.${lib-suffix}
112112
MAIN_DEPENDENCY fallback-cstring.cpp
113-
DEPENDS wrapper.h device.h clang spirv_vars.h clang-offload-bundler
113+
DEPENDS wrapper.h device.h spirv_vars.h sycl-compiler
114114
VERBATIM)
115115

116116
add_custom_command(OUTPUT ${spv_binary_dir}/libsycl-fallback-complex.spv
@@ -119,7 +119,7 @@ add_custom_command(OUTPUT ${spv_binary_dir}/libsycl-fallback-complex.spv
119119
${CMAKE_CURRENT_SOURCE_DIR}/fallback-complex.cpp
120120
-o ${spv_binary_dir}/libsycl-fallback-complex.spv
121121
MAIN_DEPENDENCY fallback-complex.cpp
122-
DEPENDS device_math.h device_complex.h device.h clang llvm-spirv
122+
DEPENDS device_math.h device_complex.h device.h sycl-compiler
123123
VERBATIM)
124124

125125
add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-fallback-complex.${lib-suffix}
@@ -128,7 +128,7 @@ add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-fallback-complex.${lib-suffi
128128
${CMAKE_CURRENT_SOURCE_DIR}/fallback-complex.cpp
129129
-o ${obj_binary_dir}/libsycl-fallback-complex.${lib-suffix}
130130
MAIN_DEPENDENCY fallback-complex.cpp
131-
DEPENDS device_math.h device_complex.h device.h clang clang-offload-bundler
131+
DEPENDS device_math.h device_complex.h device.h sycl-compiler
132132
VERBATIM)
133133

134134
add_custom_command(OUTPUT ${spv_binary_dir}/libsycl-fallback-complex-fp64.spv
@@ -137,7 +137,7 @@ add_custom_command(OUTPUT ${spv_binary_dir}/libsycl-fallback-complex-fp64.spv
137137
${CMAKE_CURRENT_SOURCE_DIR}/fallback-complex-fp64.cpp
138138
-o ${spv_binary_dir}/libsycl-fallback-complex-fp64.spv
139139
MAIN_DEPENDENCY fallback-complex-fp64.cpp
140-
DEPENDS device_math.h device_complex.h device.h clang llvm-spirv
140+
DEPENDS device_math.h device_complex.h device.h sycl-compiler
141141
VERBATIM)
142142

143143
add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-fallback-complex-fp64.${lib-suffix}
@@ -146,7 +146,7 @@ add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-fallback-complex-fp64.${lib-
146146
${CMAKE_CURRENT_SOURCE_DIR}/fallback-complex-fp64.cpp
147147
-o ${obj_binary_dir}/libsycl-fallback-complex-fp64.${lib-suffix}
148148
MAIN_DEPENDENCY fallback-complex-fp64.cpp
149-
DEPENDS device_math.h device_complex.h device.h clang clang-offload-bundler
149+
DEPENDS device_math.h device_complex.h device.h sycl-compiler
150150
VERBATIM)
151151

152152
add_custom_command(OUTPUT ${spv_binary_dir}/libsycl-fallback-cmath.spv
@@ -155,7 +155,7 @@ add_custom_command(OUTPUT ${spv_binary_dir}/libsycl-fallback-cmath.spv
155155
${CMAKE_CURRENT_SOURCE_DIR}/fallback-cmath.cpp
156156
-o ${spv_binary_dir}/libsycl-fallback-cmath.spv
157157
MAIN_DEPENDENCY fallback-cmath.cpp
158-
DEPENDS device_math.h device.h clang llvm-spirv
158+
DEPENDS device_math.h device.h sycl-compiler
159159
VERBATIM)
160160

161161
add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-fallback-cmath.${lib-suffix}
@@ -164,7 +164,7 @@ add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-fallback-cmath.${lib-suffix}
164164
${CMAKE_CURRENT_SOURCE_DIR}/fallback-cmath.cpp
165165
-o ${obj_binary_dir}/libsycl-fallback-cmath.${lib-suffix}
166166
MAIN_DEPENDENCY fallback-cmath.cpp
167-
DEPENDS device_math.h device.h clang clang-offload-bundler
167+
DEPENDS device_math.h device.h sycl-compiler
168168
VERBATIM)
169169

170170
add_custom_command(OUTPUT ${spv_binary_dir}/libsycl-fallback-cmath-fp64.spv
@@ -173,7 +173,7 @@ add_custom_command(OUTPUT ${spv_binary_dir}/libsycl-fallback-cmath-fp64.spv
173173
${CMAKE_CURRENT_SOURCE_DIR}/fallback-cmath-fp64.cpp
174174
-o ${spv_binary_dir}/libsycl-fallback-cmath-fp64.spv
175175
MAIN_DEPENDENCY fallback-cmath-fp64.cpp
176-
DEPENDS device_math.h device.h clang llvm-spirv
176+
DEPENDS device_math.h device.h sycl-compiler
177177
VERBATIM)
178178

179179
add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-fallback-cmath-fp64.${lib-suffix}
@@ -182,7 +182,7 @@ add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-fallback-cmath-fp64.${lib-su
182182
${CMAKE_CURRENT_SOURCE_DIR}/fallback-cmath-fp64.cpp
183183
-o ${obj_binary_dir}/libsycl-fallback-cmath-fp64.${lib-suffix}
184184
MAIN_DEPENDENCY fallback-cmath-fp64.cpp
185-
DEPENDS device_math.h device.h clang clang-offload-bundler
185+
DEPENDS device_math.h device.h sycl-compiler
186186
VERBATIM)
187187

188188
add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-itt-stubs.${lib-suffix}
@@ -191,7 +191,7 @@ add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-itt-stubs.${lib-suffix}
191191
${CMAKE_CURRENT_SOURCE_DIR}/itt_stubs.cpp
192192
-o ${obj_binary_dir}/libsycl-itt-stubs.${lib-suffix}
193193
MAIN_DEPENDENCY itt_stubs.cpp
194-
DEPENDS device_itt.h spirv_vars.h device.h clang clang-offload-bundler
194+
DEPENDS device_itt.h spirv_vars.h device.h sycl-compiler
195195
VERBATIM)
196196

197197
add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-itt-compiler-wrappers.${lib-suffix}
@@ -200,7 +200,7 @@ add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-itt-compiler-wrappers.${lib-
200200
${CMAKE_CURRENT_SOURCE_DIR}/itt_compiler_wrappers.cpp
201201
-o ${obj_binary_dir}/libsycl-itt-compiler-wrappers.${lib-suffix}
202202
MAIN_DEPENDENCY itt_compiler_wrappers.cpp
203-
DEPENDS device_itt.h spirv_vars.h device.h clang clang-offload-bundler
203+
DEPENDS device_itt.h spirv_vars.h device.h sycl-compiler
204204
VERBATIM)
205205

206206
add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-itt-user-wrappers.${lib-suffix}
@@ -209,7 +209,7 @@ add_custom_command(OUTPUT ${obj_binary_dir}/libsycl-itt-user-wrappers.${lib-suff
209209
${CMAKE_CURRENT_SOURCE_DIR}/itt_user_wrappers.cpp
210210
-o ${obj_binary_dir}/libsycl-itt-user-wrappers.${lib-suffix}
211211
MAIN_DEPENDENCY itt_user_wrappers.cpp
212-
DEPENDS device_itt.h spirv_vars.h device.h clang clang-offload-bundler
212+
DEPENDS device_itt.h spirv_vars.h device.h sycl-compiler
213213
VERBATIM)
214214

215215
set(devicelib-obj-itt-files
@@ -258,12 +258,12 @@ endif()
258258
set(install_dest_lib lib${LLVM_LIBDIR_SUFFIX})
259259

260260
install(FILES ${devicelib-obj-file}
261-
${obj_binary_dir}/libsycl-fallback-cassert.${lib-suffix}
262-
${obj_binary_dir}/libsycl-fallback-cstring.${lib-suffix}
261+
${obj_binary_dir}/libsycl-fallback-cassert.${lib-suffix}
262+
${obj_binary_dir}/libsycl-fallback-cstring.${lib-suffix}
263263
${devicelib-obj-complex}
264-
${obj_binary_dir}/libsycl-fallback-complex.${lib-suffix}
264+
${obj_binary_dir}/libsycl-fallback-complex.${lib-suffix}
265265
${devicelib-obj-complex-fp64}
266-
${obj_binary_dir}/libsycl-fallback-complex-fp64.${lib-suffix}
266+
${obj_binary_dir}/libsycl-fallback-complex-fp64.${lib-suffix}
267267
${devicelib-obj-cmath}
268268
${obj_binary_dir}/libsycl-fallback-cmath.${lib-suffix}
269269
${devicelib-obj-cmath-fp64}

llvm-spirv/lib/SPIRV/LLVMToSPIRVDbgTran.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,7 @@ LLVMToSPIRVDbgTran::transDbgCompilationUnit(const DICompileUnit *CU) {
497497
Ops[DWARFVersionIdx] = M->getDwarfVersion();
498498
Ops[SourceIdx] = getSource(CU)->getId();
499499
Ops[LanguageIdx] = CU->getSourceLanguage();
500+
BM->addModuleProcessed(SPIRVDebug::ProducerPrefix + CU->getProducer().str());
500501
// Cache CU in a member.
501502
SPIRVCU = static_cast<SPIRVExtInst *>(
502503
BM->addDebugInfo(SPIRVDebug::CompilationUnit, getVoidTy(), Ops));

llvm-spirv/lib/SPIRV/SPIRVToLLVMDbgTran.cpp

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,9 @@ SPIRVToLLVMDbgTran::transCompileUnit(const SPIRVExtInst *DebugInst) {
127127
assert(Ops.size() == OperandCount && "Invalid number of operands");
128128
M->addModuleFlag(llvm::Module::Max, "Dwarf Version", Ops[DWARFVersionIdx]);
129129
unsigned SourceLang = Ops[LanguageIdx];
130-
CU = Builder.createCompileUnit(SourceLang, getFile(Ops[SourceIdx]), "spirv", false,
131-
"", 0);
130+
auto Producer = findModuleProducer();
131+
CU = Builder.createCompileUnit(SourceLang, getFile(Ops[SourceIdx]), Producer,
132+
false, "", 0);
132133
return CU;
133134
}
134135

@@ -1051,6 +1052,16 @@ SPIRVToLLVMDbgTran::SplitFileName::SplitFileName(const string &FileName) {
10511052
}
10521053
}
10531054

1055+
std::string SPIRVToLLVMDbgTran::findModuleProducer() {
1056+
for (const auto &I : BM->getModuleProcessedVec()) {
1057+
if (I->getProcessStr().find(SPIRVDebug::ProducerPrefix) !=
1058+
std::string::npos) {
1059+
return I->getProcessStr().substr(SPIRVDebug::ProducerPrefix.size());
1060+
}
1061+
}
1062+
return "spirv";
1063+
}
1064+
10541065
Optional<DIFile::ChecksumInfo<StringRef>>
10551066
SPIRVToLLVMDbgTran::ParseChecksum(StringRef Text) {
10561067
// Example of "Text" variable:

llvm-spirv/lib/SPIRV/SPIRVToLLVMDbgTran.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ class SPIRVToLLVMDbgTran {
175175
return nullptr;
176176
}
177177
const std::string &getString(const SPIRVId Id);
178+
std::string findModuleProducer();
178179
Optional<DIFile::ChecksumInfo<StringRef>> ParseChecksum(StringRef Text);
179180
};
180181
} // namespace SPIRV

llvm-spirv/lib/SPIRV/libSPIRV/SPIRV.debug.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
namespace SPIRVDebug {
77

88
const unsigned int DebugInfoVersion = 0x00010000;
9+
static const std::string ProducerPrefix = {"Debug info producer: "};
910
static const std::string ChecksumKindPrefx = {"//__CSK_"};
1011

1112
// clang-format off

llvm-spirv/lib/SPIRV/libSPIRV/SPIRVEntry.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -742,4 +742,20 @@ SPIRVType *SPIRVTypeStructContinuedINTEL::getMemberType(size_t I) const {
742742
return static_cast<SPIRVType *>(SPIRVEntry::getEntry(Elements[I]));
743743
}
744744

745+
void SPIRVModuleProcessed::validate() const {
746+
assert(WordCount == FixedWC + getSizeInWords(ProcessStr) &&
747+
"Incorrect word count in OpModuleProcessed");
748+
}
749+
750+
void SPIRVModuleProcessed::encode(spv_ostream &O) const {
751+
getEncoder(O) << ProcessStr;
752+
}
753+
754+
void SPIRVModuleProcessed::decode(std::istream &I) {
755+
getDecoder(I) >> ProcessStr;
756+
Module->addModuleProcessed(ProcessStr);
757+
}
758+
759+
std::string SPIRVModuleProcessed::getProcessStr() { return ProcessStr; }
760+
745761
} // namespace SPIRV

llvm-spirv/lib/SPIRV/libSPIRV/SPIRVEntry.h

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -962,6 +962,27 @@ template <> struct InstToContinued<OpSpecConstantComposite> {
962962
constexpr static spv::Op OpCode = OpSpecConstantCompositeContinuedINTEL;
963963
};
964964

965+
class SPIRVModuleProcessed : public SPIRVEntryNoId<OpModuleProcessed> {
966+
public:
967+
SPIRVModuleProcessed(SPIRVModule *M, const std::string &Process)
968+
: SPIRVEntryNoId(M, FixedWC + getSizeInWords(Process)),
969+
ProcessStr(Process) {
970+
updateModuleVersion();
971+
}
972+
SPIRVModuleProcessed() { updateModuleVersion(); }
973+
_SPIRV_DCL_ENCDEC
974+
void validate() const override;
975+
SPIRVWord getRequiredSPIRVVersion() const override {
976+
return static_cast<SPIRVWord>(VersionNumber::SPIRV_1_1);
977+
}
978+
979+
std::string getProcessStr();
980+
981+
private:
982+
std::string ProcessStr;
983+
static const SPIRVWord FixedWC = 1;
984+
};
985+
965986
// ToDo: The following typedef's are place holders for SPIRV entity classes
966987
// to be implemented.
967988
// Each time a new class is implemented, remove the corresponding typedef.

0 commit comments

Comments
 (0)