jhuber6 added inline comments.

================
Comment at: clang/lib/Driver/Driver.cpp:4216
+  llvm::Triple T(getTargetTriple());
+  if (T.getArch() == llvm::Triple::dxil && 
!Args.getLastArg(options::OPT_dxc_disable_validation)) {
+    // Only add action when 'dxv' exists.
----------------
Could we move this logic into the HLSL ToolChain like we do with CUDA / ROCm? 
You should be able to then cast the toolchain to `HLSLToolChain` and query it 
here.


================
Comment at: clang/lib/Driver/Driver.cpp:4217
+  if (T.getArch() == llvm::Triple::dxil && 
!Args.getLastArg(options::OPT_dxc_disable_validation)) {
+    // Only add action when 'dxv' exists.
+    std::string DxvPath = GetProgramPath("dxv", C.getDefaultToolChain());
----------------



================
Comment at: clang/lib/Driver/Driver.cpp:4222
+      Actions.push_back(
+          C.MakeAction<BinaryAnalyzeJobAction>(LastAction, types::TY_Nothing));
+    } else {
----------------
Why is the type `TY_Nothing`? The `ConstructJob` invocation shows it using 
`-o`. So it should have output?


================
Comment at: clang/lib/Driver/Driver.cpp:4224
+    } else {
+      // Not find dxv.
+      C.getDriver().Diag(diag::warn_drv_dxc_missing_dxv);
----------------



================
Comment at: clang/lib/Driver/ToolChains/HLSL.cpp:171
+    // discover the dxv executable.
+    getProgramPaths().push_back(getDriver().Dir);
+}
----------------
Just to check since I'm not really familiar at all with this toolchain, but 
does `dxv` exist as a clang tool? This path exists to search in the 
`/path/to/llvm/install/bin` directory. If it's an external binary this 
shouldn't be necessary.


================
Comment at: clang/test/Driver/dxc_dxv_path.hlsl:11
+// VD-NOT:dxv not found
+// VD:"-triple" "dxil-unknown-shadermodel6.3-library"
+
----------------
Lines that check clang typically start with `"-cc1"`


================
Comment at: clang/test/Driver/dxc_dxv_path.hlsl:14-15
+// RUN: %clang_dxc -Tlib_6_3 -ccc-print-bindings --dxv-path=%T -Fo %t.dxc  %s 
2>&1 | FileCheck %s --check-prefix=BINDINGS
+// BINDINGS: "dxil-unknown-shadermodel6.3-library" - "clang", inputs: 
["{{.*}}dxc_dxv_path.hlsl"], output: "[[DXC:.+]].dxc"
+// BINDINGS: "dxil-unknown-shadermodel6.3-library" - "hlsl::Validator", 
inputs: ["[[DXC]].dxc"], output: (nothing)
----------------
Can we get a test for `-ccc-print-phases` as well? Also, I wouldn't bother 
checking the test file's name and it's good practice to stipulate `NEXT` on 
these kinds of tests.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141705/new/

https://reviews.llvm.org/D141705

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to