@@ -938,24 +938,26 @@ Value *spirv::genPseudoLocalID(Instruction &Before, const Triple &TT) {
938
938
IRBuilder<> Bld (Ctx);
939
939
Bld.SetInsertPoint (&Before);
940
940
941
- #define CREATE_CALLEE (NAME, FN_NAME ) \
942
- FunctionCallee FnCallee##NAME = M.getOrInsertFunction (FN_NAME, RetTy); \
943
- assert (FnCallee##NAME && " spirv intrinsic creation failed" ); \
944
- auto NAME = Bld.CreateCall (FnCallee##NAME, {});
945
-
946
- CREATE_CALLEE (LocalInvocationId_X, " _Z27__spirv_LocalInvocationId_xv" );
947
- CREATE_CALLEE (LocalInvocationId_Y, " _Z27__spirv_LocalInvocationId_yv" );
948
- CREATE_CALLEE (LocalInvocationId_Z, " _Z27__spirv_LocalInvocationId_zv" );
949
-
950
- #undef CREATE_CALLEE
941
+ auto CreateCallee = [&](StringRef Name) {
942
+ FunctionCallee Callee = M.getOrInsertFunction (Name, RetTy);
943
+ assert (Callee.getCallee () && " spirv intrinsic creation failed" );
944
+ return Bld.CreateCall (Callee, {});
945
+ };
946
+
947
+ Value *LocalInvocationIdX =
948
+ CreateCallee (" _Z27__spirv_LocalInvocationId_xv" );
949
+ Value *LocalInvocationIdY =
950
+ CreateCallee (" _Z27__spirv_LocalInvocationId_yv" );
951
+ Value *LocalInvocationIdZ =
952
+ CreateCallee (" _Z27__spirv_LocalInvocationId_zv" );
951
953
952
954
// 1: returns
953
955
// __spirv_LocalInvocationId_x() |
954
956
// __spirv_LocalInvocationId_y() |
955
957
// __spirv_LocalInvocationId_z()
956
958
//
957
- return Bld.CreateOr (LocalInvocationId_X ,
958
- Bld.CreateOr (LocalInvocationId_Y, LocalInvocationId_Z ));
959
+ return Bld.CreateOr (LocalInvocationIdX ,
960
+ Bld.CreateOr (LocalInvocationIdY, LocalInvocationIdZ ));
959
961
} else {
960
962
// extern "C" const __constant size_t __spirv_BuiltInLocalInvocationIndex;
961
963
// Must correspond to the code in
0 commit comments