[clang] [HLSL][DirectX] Add the Qdx-rootsignature-strip driver option (PR #154454)
Justin Bogner via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 25 09:32:35 PDT 2025
================
@@ -452,16 +482,25 @@ bool HLSLToolChain::requiresBinaryTranslation(DerivedArgList &Args) const {
return Args.hasArg(options::OPT_metal) && Args.hasArg(options::OPT_dxc_Fo);
}
+bool HLSLToolChain::requiresObjcopy(DerivedArgList &Args) const {
+ return Args.hasArg(options::OPT_dxc_Fo) &&
+ Args.hasArg(options::OPT_dxc_strip_rootsignature);
+}
+
bool HLSLToolChain::isLastJob(DerivedArgList &Args,
Action::ActionClass AC) const {
bool HasTranslation = requiresBinaryTranslation(Args);
bool HasValidation = requiresValidation(Args);
+ bool HasObjcopy = requiresObjcopy(Args);
// If translation and validation are not required, we should only have one
// action.
- if (!HasTranslation && !HasValidation)
+ if (!HasTranslation && !HasValidation && !HasObjcopy)
return true;
if ((HasTranslation && AC == Action::BinaryTranslatorJobClass) ||
- (!HasTranslation && HasValidation && AC == Action::BinaryAnalyzeJobClass))
+ (!HasTranslation && HasValidation &&
+ AC == Action::BinaryAnalyzeJobClass) ||
+ (!HasTranslation && !HasValidation && HasObjcopy &&
+ AC == Action::ObjcopyJobClass))
return true;
return false;
----------------
bogner wrote:
This logic is getting a bit unweildy. Would it simplify things to work from the last job backwards? That is,
```c++
if (HasObjcopy)
return AC == Action::ObjcopyJobClass;
if (HasValidation)
return AC == Action::BinaryAnalyzeJobClass;
if (HasTranslation)
return AC == Action::BinaryTranslatorJobClass;
// If none of translation, validation, or objcopy are required, we should only
// have one action
return true;
https://github.com/llvm/llvm-project/pull/154454
More information about the cfe-commits
mailing list