aaron.ballman added a comment.
There are no tests for applying this to a global variable, so those should be
added.
================
Comment at: clang/include/clang/Basic/AttrDocs.td:6596-6598
+The ``SV_DispatchThreadID`` semantic, when applied to an input parameter,
specifies a
+data binding to map global thread offset within the Dispatch call(per
dimension of the group) to the specified parameter.
+This attribute is only supported in compute shaders.
----------------
It doesn't specify what happens when applied to a global variable.
================
Comment at: clang/lib/CodeGen/CGHLSLRuntime.cpp:113
+static Value *buildVectorInput(IRBuilder<> &B, Function *F, llvm::Type *Ty) {
+ if (FixedVectorType *VT = dyn_cast<FixedVectorType>(Ty)) {
+ Value *Result = PoisonValue::get(Ty);
----------------
================
Comment at: clang/lib/CodeGen/CGHLSLRuntime.cpp:120-121
+ return Result;
+ } else
+ return B.CreateCall(F, {B.getInt32(0)});
+}
----------------
================
Comment at: clang/lib/Sema/SemaDeclAttr.cpp:6925
+ }
+
+ D->addAttr(::new (S.Context) HLSLSV_DispatchThreadIDAttr(S.Context, AL));
----------------
Are there other restrictions we need to care about, like what the type of the
parameter/global is, etc?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D133983/new/
https://reviews.llvm.org/D133983
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits