[llvm-branch-commits] [clang] [llvm] [HLSL][DirectX] Add support for `rootsig` as a target environment (PR #156373)
Justin Bogner via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Sep 4 10:11:58 PDT 2025
================
@@ -140,8 +143,19 @@ analyzeModule(Module &M) {
RSD.StaticSamplersOffset = 0u;
RSDMap.insert(std::make_pair(F, RSD));
+ };
+
+ if (M.getTargetTriple().getEnvironment() ==
+ Triple::EnvironmentType::RootSignature) {
+ assert(RootSignatureNode->getNumOperands() == 1);
+ MDNode *RSDefNode = RootSignatureNode->getOperand(0);
+ HandleNode(RSDefNode, true);
+ return RSDMap;
}
+ for (MDNode *RSDefNode : RootSignatureNode->operands())
+ HandleNode(RSDefNode);
----------------
bogner wrote:
It's mostly a matter of style, but I think it might be slightly more readable to keep this as a loop rather than pulling the lambda out like this. You'd need to do the root signature book keeping before the loop:
```c++
bool AllowNullFunctions = false;
if (M.getTargetTriple().getEnvironment() ==
Triple::EnvironmentType::RootSignature) {
assert(RootSignatureNode->getNumOperands() == 1);
AllowNullFunctions = true;
}
for (MDNode *RSDefNode : RootSignatureNode->operands())
// ...
```
What do you think?
https://github.com/llvm/llvm-project/pull/156373
More information about the llvm-branch-commits
mailing list