================
@@ -604,8 +649,14 @@ bool HLSLToolChain::isLastJob(DerivedArgList &Args,
   // Note: we check in the reverse order of execution
   if (requiresBinaryTranslation(Args))
     return AC == Action::Action::BinaryTranslatorJobClass;
-  if (requiresValidation(Args))
+  // For SPIR-V, spirv-val is a pure validator that doesn't produce output
+  // files, so the compile step is the output-producing step. For DXIL, dxv
+  // validates and signs, producing the final output.
+  if (requiresValidation(Args, /*Diagnose=*/false)) {
+    if (getTriple().isSPIRV())
+      return AC != Action::Action::BinaryAnalyzeJobClass;
----------------
bogner wrote:

This doesn't look right - we should be checking that AC is something in 
particular, no? Also, if this logic is correct I think we need to change the 
name of this function - just because the spirv-val job doesn't produce output 
doesn't make it "not last".

https://github.com/llvm/llvm-project/pull/188150
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to