[llvm] [SPIRV] Upd SPV_KHR_shader_clock extension (PR #160147)
Dmitry Sidorov via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 25 08:59:23 PDT 2025
================
@@ -1443,18 +1443,25 @@ static bool generateKernelClockInst(const SPIRV::IncomingCall *Call,
Register ResultReg = Call->ReturnRegister;
- // Deduce the `Scope` operand from the builtin function name.
- SPIRV::Scope::Scope ScopeArg =
- StringSwitch<SPIRV::Scope::Scope>(Builtin->Name)
- .EndsWith("device", SPIRV::Scope::Scope::Device)
- .EndsWith("work_group", SPIRV::Scope::Scope::Workgroup)
- .EndsWith("sub_group", SPIRV::Scope::Scope::Subgroup);
- Register ScopeReg = buildConstantIntReg32(ScopeArg, MIRBuilder, GR);
-
- MIRBuilder.buildInstr(SPIRV::OpReadClockKHR)
- .addDef(ResultReg)
- .addUse(GR->getSPIRVTypeID(Call->ReturnType))
- .addUse(ScopeReg);
+ if (Builtin->Name == "__spirv_ReadClockKHR") {
+ MIRBuilder.buildInstr(SPIRV::OpReadClockKHR)
+ .addDef(ResultReg)
+ .addUse(GR->getSPIRVTypeID(Call->ReturnType))
+ .addUse(Call->Arguments[0]);
+ } else {
----------------
MrSidims wrote:
I believe it's not needed. I'm looking at https://github.com/llvm/llvm-project/pull/96790 and it seems like changing
`defm : DemangledNativeBuiltin<"__spirv_ReadClockKHR", OpenCL_std, KernelClock, 1, 1, OpReadClockKHR>;`
to
`defm : DemangledGroupBuiltinWrapper<"__spirv_ReadClockKHR", OpenCL_std, 1, 1, OpReadClockKHR>;`
should be enough
https://github.com/llvm/llvm-project/pull/160147
More information about the llvm-commits
mailing list