[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-11-01 Thread Natalie Chouinard via cfe-commits

https://github.com/sudonatalie closed 
https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-11-01 Thread Chris B via cfe-commits

https://github.com/llvm-beanz approved this pull request.


https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-10-30 Thread Natalie Chouinard via cfe-commits

https://github.com/sudonatalie updated 
https://github.com/llvm/llvm-project/pull/65989

>From 7f3cc0939b7840773f773870957fe2db0a93a502 Mon Sep 17 00:00:00 2001
From: Natalie Chouinard 
Date: Mon, 11 Sep 2023 18:08:17 +
Subject: [PATCH 1/3] [SPIRV] Add -spirv option to DXC driver

Add an option to target SPIR-V to the clang-dxc driver, which sets the
target triple's architecture to logical SPIR-V.
---
 clang/include/clang/Driver/Options.td | 2 ++
 clang/lib/Driver/Driver.cpp   | 6 ++
 clang/test/Driver/dxc_spirv.hlsl  | 4 
 3 files changed, 12 insertions(+)
 create mode 100644 clang/test/Driver/dxc_spirv.hlsl

diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index 7f3f5125d42e7a9..1c76da8682a5b19 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -8316,3 +8316,5 @@ def dxc_disable_validation : DXCFlag<"Vd">,
 def : Option<["/", "-"], "Qembed_debug", KIND_FLAG>, Group,
   Flags<[Ignored]>, Visibility<[DXCOption]>,
   HelpText<"Embed PDB in shader container (ignored)">;
+def spirv : DXCFlag<"spirv">,
+  HelpText<"Generate SPIR-V code">;
\ No newline at end of file
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 30ae2201ab8..92fbdcabe9cfdc9 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1303,6 +1303,12 @@ Compilation *Driver::BuildCompilation(ArrayRef ArgList) {
 Diag(diag::err_drv_invalid_directx_shader_module) << TargetProfile;
 
   A->claim();
+
+  if (Args.hasArg(options::OPT_spirv)) {
+llvm::Triple T(TargetTriple);
+T.setArch(llvm::Triple::spirv);
+TargetTriple = T.str();
+  }
 } else {
   Diag(diag::err_drv_dxc_missing_target_profile);
 }
diff --git a/clang/test/Driver/dxc_spirv.hlsl b/clang/test/Driver/dxc_spirv.hlsl
new file mode 100644
index 000..387b71ca58ada18
--- /dev/null
+++ b/clang/test/Driver/dxc_spirv.hlsl
@@ -0,0 +1,4 @@
+// RUN: %clang_dxc -T cs_6_0 -spirv -### %s 2>&1 | FileCheck %s
+
+// CHECK: "-triple" "spirv-unknown-shadermodel6.0-compute"
+// CHECK-SAME: "-x" "hlsl"
\ No newline at end of file

>From c2464247b928ca93e2b40776aa5b5c8bca5dcb99 Mon Sep 17 00:00:00 2001
From: Natalie Chouinard 
Date: Tue, 24 Oct 2023 14:40:36 +
Subject: [PATCH 2/3] Add TODO

---
 clang/lib/Driver/Driver.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 92fbdcabe9cfdc9..6f5ff8141032677 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1304,6 +1304,7 @@ Compilation *Driver::BuildCompilation(ArrayRef ArgList) {
 
   A->claim();
 
+  // TODO: Specify Vulkan target environment somewhere in the triple.
   if (Args.hasArg(options::OPT_spirv)) {
 llvm::Triple T(TargetTriple);
 T.setArch(llvm::Triple::spirv);

>From 67eccb49b8f544cc03edc9cf8a2ed982b2ea8c2d Mon Sep 17 00:00:00 2001
From: Natalie Chouinard 
Date: Tue, 24 Oct 2023 14:51:20 +
Subject: [PATCH 3/3] EOF newlines

---
 clang/include/clang/Driver/Options.td | 2 +-
 clang/test/Driver/dxc_spirv.hlsl  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index 1c76da8682a5b19..8193a7adcbd5c84 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -8317,4 +8317,4 @@ def : Option<["/", "-"], "Qembed_debug", KIND_FLAG>, 
Group,
   Flags<[Ignored]>, Visibility<[DXCOption]>,
   HelpText<"Embed PDB in shader container (ignored)">;
 def spirv : DXCFlag<"spirv">,
-  HelpText<"Generate SPIR-V code">;
\ No newline at end of file
+  HelpText<"Generate SPIR-V code">;
diff --git a/clang/test/Driver/dxc_spirv.hlsl b/clang/test/Driver/dxc_spirv.hlsl
index 387b71ca58ada18..a3c5c30af06e3c8 100644
--- a/clang/test/Driver/dxc_spirv.hlsl
+++ b/clang/test/Driver/dxc_spirv.hlsl
@@ -1,4 +1,4 @@
 // RUN: %clang_dxc -T cs_6_0 -spirv -### %s 2>&1 | FileCheck %s
 
 // CHECK: "-triple" "spirv-unknown-shadermodel6.0-compute"
-// CHECK-SAME: "-x" "hlsl"
\ No newline at end of file
+// CHECK-SAME: "-x" "hlsl"

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


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-10-26 Thread Natalie Chouinard via cfe-commits


@@ -2,8 +2,8 @@
 
 // Supported targets
 //
-// RUN: %clang -target dxil-unknown-shadermodel6.2-pixel %s -S -o /dev/null 
2>&1 | FileCheck --check-prefix=CHECK-VALID %s
-// RUN: %clang -target spirv-unknown-shadermodel6.2-library %s -S -o /dev/null 
2>&1 | FileCheck --check-prefix=CHECK-VALID %s
+// RUN: %clang -target dxil-unknown-shadermodel6.2-compute %s -S -o /dev/null 
2>&1 | FileCheck --allow-empty --check-prefix=CHECK-VALID %s
+// RUN: %clang -target spirv-unknown-shadermodel6.2-compute %s -S -o /dev/null 
2>&1 | FileCheck --allow-empty --check-prefix=CHECK-VALID %s

sudonatalie wrote:

Since we still have some unanswered questions about our triple requirements, I 
left the sys portion as-is for now and added a TODO and 
https://github.com/llvm/llvm-project/issues/70051 to track. If we want to 
require it to be `unkown` we should do that in a separate patch, but I don't 
think it would add value now.

https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-10-26 Thread Natalie Chouinard via cfe-commits

https://github.com/sudonatalie updated 
https://github.com/llvm/llvm-project/pull/65989

>From 331e1a92f2d93dcd5e7e1cae25ce51f33b2c8ffe Mon Sep 17 00:00:00 2001
From: Natalie Chouinard 
Date: Mon, 11 Sep 2023 18:08:17 +
Subject: [PATCH 1/3] [SPIRV] Add -spirv option to DXC driver

Add an option to target SPIR-V to the clang-dxc driver, which sets the
target triple's architecture to logical SPIR-V.
---
 clang/include/clang/Driver/Options.td | 2 ++
 clang/lib/Driver/Driver.cpp   | 6 ++
 clang/test/Driver/dxc_spirv.hlsl  | 4 
 3 files changed, 12 insertions(+)
 create mode 100644 clang/test/Driver/dxc_spirv.hlsl

diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index 2eb86caa6e6d40e..5e0aa80bc64945d 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -8324,3 +8324,5 @@ def dxc_disable_validation : DXCFlag<"Vd">,
 def : Option<["/", "-"], "Qembed_debug", KIND_FLAG>, Group,
   Flags<[Ignored]>, Visibility<[DXCOption]>,
   HelpText<"Embed PDB in shader container (ignored)">;
+def spirv : DXCFlag<"spirv">,
+  HelpText<"Generate SPIR-V code">;
\ No newline at end of file
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 30ae2201ab8..92fbdcabe9cfdc9 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1303,6 +1303,12 @@ Compilation *Driver::BuildCompilation(ArrayRef ArgList) {
 Diag(diag::err_drv_invalid_directx_shader_module) << TargetProfile;
 
   A->claim();
+
+  if (Args.hasArg(options::OPT_spirv)) {
+llvm::Triple T(TargetTriple);
+T.setArch(llvm::Triple::spirv);
+TargetTriple = T.str();
+  }
 } else {
   Diag(diag::err_drv_dxc_missing_target_profile);
 }
diff --git a/clang/test/Driver/dxc_spirv.hlsl b/clang/test/Driver/dxc_spirv.hlsl
new file mode 100644
index 000..387b71ca58ada18
--- /dev/null
+++ b/clang/test/Driver/dxc_spirv.hlsl
@@ -0,0 +1,4 @@
+// RUN: %clang_dxc -T cs_6_0 -spirv -### %s 2>&1 | FileCheck %s
+
+// CHECK: "-triple" "spirv-unknown-shadermodel6.0-compute"
+// CHECK-SAME: "-x" "hlsl"
\ No newline at end of file

>From d0be295583dd279de25ee65124712aa9e9f694be Mon Sep 17 00:00:00 2001
From: Natalie Chouinard 
Date: Tue, 24 Oct 2023 14:40:36 +
Subject: [PATCH 2/3] Add TODO

---
 clang/lib/Driver/Driver.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 92fbdcabe9cfdc9..6f5ff8141032677 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1304,6 +1304,7 @@ Compilation *Driver::BuildCompilation(ArrayRef ArgList) {
 
   A->claim();
 
+  // TODO: Specify Vulkan target environment somewhere in the triple.
   if (Args.hasArg(options::OPT_spirv)) {
 llvm::Triple T(TargetTriple);
 T.setArch(llvm::Triple::spirv);

>From 96e3a24bf3fafe715054969d859fbe44a0b9dc25 Mon Sep 17 00:00:00 2001
From: Natalie Chouinard 
Date: Tue, 24 Oct 2023 14:51:20 +
Subject: [PATCH 3/3] EOF newlines

---
 clang/include/clang/Driver/Options.td | 2 +-
 clang/test/Driver/dxc_spirv.hlsl  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index 5e0aa80bc64945d..474263699c47ee2 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -8325,4 +8325,4 @@ def : Option<["/", "-"], "Qembed_debug", KIND_FLAG>, 
Group,
   Flags<[Ignored]>, Visibility<[DXCOption]>,
   HelpText<"Embed PDB in shader container (ignored)">;
 def spirv : DXCFlag<"spirv">,
-  HelpText<"Generate SPIR-V code">;
\ No newline at end of file
+  HelpText<"Generate SPIR-V code">;
diff --git a/clang/test/Driver/dxc_spirv.hlsl b/clang/test/Driver/dxc_spirv.hlsl
index 387b71ca58ada18..a3c5c30af06e3c8 100644
--- a/clang/test/Driver/dxc_spirv.hlsl
+++ b/clang/test/Driver/dxc_spirv.hlsl
@@ -1,4 +1,4 @@
 // RUN: %clang_dxc -T cs_6_0 -spirv -### %s 2>&1 | FileCheck %s
 
 // CHECK: "-triple" "spirv-unknown-shadermodel6.0-compute"
-// CHECK-SAME: "-x" "hlsl"
\ No newline at end of file
+// CHECK-SAME: "-x" "hlsl"

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


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-10-26 Thread Nathan Gauër via cfe-commits


@@ -2,8 +2,8 @@
 
 // Supported targets
 //
-// RUN: %clang -target dxil-unknown-shadermodel6.2-pixel %s -S -o /dev/null 
2>&1 | FileCheck --check-prefix=CHECK-VALID %s
-// RUN: %clang -target spirv-unknown-shadermodel6.2-library %s -S -o /dev/null 
2>&1 | FileCheck --check-prefix=CHECK-VALID %s
+// RUN: %clang -target dxil-unknown-shadermodel6.2-compute %s -S -o /dev/null 
2>&1 | FileCheck --allow-empty --check-prefix=CHECK-VALID %s
+// RUN: %clang -target spirv-unknown-shadermodel6.2-compute %s -S -o /dev/null 
2>&1 | FileCheck --allow-empty --check-prefix=CHECK-VALID %s

Keenuts wrote:

Shall shadermodel version be replaced with unknown on the spirv line?
(and triple checked to refuse it when explicitly used with spirv for now?)

https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-10-26 Thread Natalie Chouinard via cfe-commits


@@ -2,8 +2,8 @@
 
 // Supported targets
 //
-// RUN: %clang -target dxil-unknown-shadermodel6.2-pixel %s -S -o /dev/null 
2>&1 | FileCheck --check-prefix=CHECK-VALID %s
-// RUN: %clang -target spirv-unknown-shadermodel6.2-library %s -S -o /dev/null 
2>&1 | FileCheck --check-prefix=CHECK-VALID %s
+// RUN: %clang -target dxil-unknown-shadermodel6.2-compute %s -S -o /dev/null 
2>&1 | FileCheck --allow-empty --check-prefix=CHECK-VALID %s
+// RUN: %clang -target spirv-unknown-shadermodel6.2-compute %s -S -o /dev/null 
2>&1 | FileCheck --allow-empty --check-prefix=CHECK-VALID %s

sudonatalie wrote:

Separated the test fix into: https://github.com/llvm/llvm-project/pull/70330

https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-10-26 Thread Natalie Chouinard via cfe-commits

https://github.com/sudonatalie edited 
https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-10-26 Thread Natalie Chouinard via cfe-commits

https://github.com/sudonatalie updated 
https://github.com/llvm/llvm-project/pull/65989

>From 4738a535e24114ce24647f0935b1cec897bf0a1b Mon Sep 17 00:00:00 2001
From: Natalie Chouinard 
Date: Thu, 26 Oct 2023 13:21:23 +
Subject: [PATCH 1/4] [HLSL][SPIR-V] Fix clang driver lang target test

This test has been failing since the SPIR-V backend started failing
explicitly on unsupported shader types. Switched this test to a compute
shader since it is currently the only type supported.
---
 clang/test/Driver/hlsl-lang-targets-spirv.hlsl | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/clang/test/Driver/hlsl-lang-targets-spirv.hlsl 
b/clang/test/Driver/hlsl-lang-targets-spirv.hlsl
index ff29f143ba1dc8e..e04d71263770bbb 100644
--- a/clang/test/Driver/hlsl-lang-targets-spirv.hlsl
+++ b/clang/test/Driver/hlsl-lang-targets-spirv.hlsl
@@ -2,8 +2,8 @@
 
 // Supported targets
 //
-// RUN: %clang -target dxil-unknown-shadermodel6.2-pixel %s -S -o /dev/null 
2>&1 | FileCheck --check-prefix=CHECK-VALID %s
-// RUN: %clang -target spirv-unknown-shadermodel6.2-library %s -S -o /dev/null 
2>&1 | FileCheck --check-prefix=CHECK-VALID %s
+// RUN: %clang -target dxil-unknown-shadermodel6.2-compute %s -S -o /dev/null 
2>&1 | FileCheck --allow-empty --check-prefix=CHECK-VALID %s
+// RUN: %clang -target spirv-unknown-shadermodel6.2-compute %s -S -o /dev/null 
2>&1 | FileCheck --allow-empty --check-prefix=CHECK-VALID %s
 
 // Empty shader model
 //
@@ -27,5 +27,5 @@
 // CHECK-NO-ENV: error: shader stage is required in target '{{.*}}' for HLSL 
code generation
 // CHECK-BAD-ENV: error: shader stage '{{.*}}' in target '{{.*}}' is invalid 
for HLSL code generation
 
-[shader("pixel")]
+[shader("compute"), numthreads(1,1,1)]
 void main() {}

>From 5574c8ea5a52155cfa762d90ae4bb3ea28271252 Mon Sep 17 00:00:00 2001
From: Natalie Chouinard 
Date: Mon, 11 Sep 2023 18:08:17 +
Subject: [PATCH 2/4] [SPIRV] Add -spirv option to DXC driver

Add an option to target SPIR-V to the clang-dxc driver, which sets the
target triple's architecture to logical SPIR-V.
---
 clang/include/clang/Driver/Options.td | 2 ++
 clang/lib/Driver/Driver.cpp   | 6 ++
 clang/test/Driver/dxc_spirv.hlsl  | 4 
 3 files changed, 12 insertions(+)
 create mode 100644 clang/test/Driver/dxc_spirv.hlsl

diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index 2eb86caa6e6d40e..5e0aa80bc64945d 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -8324,3 +8324,5 @@ def dxc_disable_validation : DXCFlag<"Vd">,
 def : Option<["/", "-"], "Qembed_debug", KIND_FLAG>, Group,
   Flags<[Ignored]>, Visibility<[DXCOption]>,
   HelpText<"Embed PDB in shader container (ignored)">;
+def spirv : DXCFlag<"spirv">,
+  HelpText<"Generate SPIR-V code">;
\ No newline at end of file
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 30ae2201ab8..92fbdcabe9cfdc9 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1303,6 +1303,12 @@ Compilation *Driver::BuildCompilation(ArrayRef ArgList) {
 Diag(diag::err_drv_invalid_directx_shader_module) << TargetProfile;
 
   A->claim();
+
+  if (Args.hasArg(options::OPT_spirv)) {
+llvm::Triple T(TargetTriple);
+T.setArch(llvm::Triple::spirv);
+TargetTriple = T.str();
+  }
 } else {
   Diag(diag::err_drv_dxc_missing_target_profile);
 }
diff --git a/clang/test/Driver/dxc_spirv.hlsl b/clang/test/Driver/dxc_spirv.hlsl
new file mode 100644
index 000..387b71ca58ada18
--- /dev/null
+++ b/clang/test/Driver/dxc_spirv.hlsl
@@ -0,0 +1,4 @@
+// RUN: %clang_dxc -T cs_6_0 -spirv -### %s 2>&1 | FileCheck %s
+
+// CHECK: "-triple" "spirv-unknown-shadermodel6.0-compute"
+// CHECK-SAME: "-x" "hlsl"
\ No newline at end of file

>From 70cd7cbd9a46c7c99f43a5d25678d7d64148e1d4 Mon Sep 17 00:00:00 2001
From: Natalie Chouinard 
Date: Tue, 24 Oct 2023 14:40:36 +
Subject: [PATCH 3/4] Add TODO

---
 clang/lib/Driver/Driver.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 92fbdcabe9cfdc9..6f5ff8141032677 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1304,6 +1304,7 @@ Compilation *Driver::BuildCompilation(ArrayRef ArgList) {
 
   A->claim();
 
+  // TODO: Specify Vulkan target environment somewhere in the triple.
   if (Args.hasArg(options::OPT_spirv)) {
 llvm::Triple T(TargetTriple);
 T.setArch(llvm::Triple::spirv);

>From ba9cac519e28cad86a850038437eb0905fdc0a50 Mon Sep 17 00:00:00 2001
From: Natalie Chouinard 
Date: Tue, 24 Oct 2023 14:51:20 +
Subject: [PATCH 4/4] EOF newlines

---
 clang/include/clang/Driver/Options.td | 2 +-
 clang/test/Driver/dxc_spirv.hlsl  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/clang/include/clang/Driver/Options.td 

[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-10-24 Thread Natalie Chouinard via cfe-commits


@@ -2,8 +2,8 @@
 
 // Supported targets
 //
-// RUN: %clang -target dxil-unknown-shadermodel6.2-pixel %s -S -o /dev/null 
2>&1 | FileCheck --check-prefix=CHECK-VALID %s
-// RUN: %clang -target spirv-unknown-shadermodel6.2-library %s -S -o /dev/null 
2>&1 | FileCheck --check-prefix=CHECK-VALID %s
+// RUN: %clang -target dxil-unknown-shadermodel6.2-compute %s -S -o /dev/null 
2>&1 | FileCheck --allow-empty --check-prefix=CHECK-VALID %s
+// RUN: %clang -target spirv-unknown-shadermodel6.2-compute %s -S -o /dev/null 
2>&1 | FileCheck --allow-empty --check-prefix=CHECK-VALID %s

sudonatalie wrote:

Oh, to clarify, the `dxil` one was passing, but it seemed a little odd to leave 
it as `pixel` when I made the shader `compute` to satisfy `spirv`'s current 
capabilities. `dxil` also doesn't actually need the `--allow-empty` flag 
because it spits out a warning, but since that's not what this test should be 
testing, I thought it made sense to apply to both.

https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-10-24 Thread Natalie Chouinard via cfe-commits


@@ -2,8 +2,8 @@
 
 // Supported targets
 //
-// RUN: %clang -target dxil-unknown-shadermodel6.2-pixel %s -S -o /dev/null 
2>&1 | FileCheck --check-prefix=CHECK-VALID %s
-// RUN: %clang -target spirv-unknown-shadermodel6.2-library %s -S -o /dev/null 
2>&1 | FileCheck --check-prefix=CHECK-VALID %s
+// RUN: %clang -target dxil-unknown-shadermodel6.2-compute %s -S -o /dev/null 
2>&1 | FileCheck --allow-empty --check-prefix=CHECK-VALID %s
+// RUN: %clang -target spirv-unknown-shadermodel6.2-compute %s -S -o /dev/null 
2>&1 | FileCheck --allow-empty --check-prefix=CHECK-VALID %s

sudonatalie wrote:

This test is actually failing at tip of tree, probably due to a change on our 
side where we started explicitly failing on not-yet-supported shader types, but 
I don't think we knew about this test or made a habit of running it so it just 
fell through the cracks. I can split it out into a separate patch if you'd 
prefer though.

https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-10-24 Thread Chris B via cfe-commits


@@ -2,8 +2,8 @@
 
 // Supported targets
 //
-// RUN: %clang -target dxil-unknown-shadermodel6.2-pixel %s -S -o /dev/null 
2>&1 | FileCheck --check-prefix=CHECK-VALID %s
-// RUN: %clang -target spirv-unknown-shadermodel6.2-library %s -S -o /dev/null 
2>&1 | FileCheck --check-prefix=CHECK-VALID %s
+// RUN: %clang -target dxil-unknown-shadermodel6.2-compute %s -S -o /dev/null 
2>&1 | FileCheck --allow-empty --check-prefix=CHECK-VALID %s
+// RUN: %clang -target spirv-unknown-shadermodel6.2-compute %s -S -o /dev/null 
2>&1 | FileCheck --allow-empty --check-prefix=CHECK-VALID %s

llvm-beanz wrote:

I’m a little confused by this test change. It seems to me that the unmodified 
test should still have been valid. Did something change here?

https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-10-24 Thread Chris B via cfe-commits

https://github.com/llvm-beanz edited 
https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-10-24 Thread Natalie Chouinard via cfe-commits

sudonatalie wrote:

Left this on the back burner for a bit, but it would be nice to land now. 
@llvm-beanz or @bogner Can you take a look?

https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-10-24 Thread Natalie Chouinard via cfe-commits

https://github.com/sudonatalie updated 
https://github.com/llvm/llvm-project/pull/65989

>From 46b615e1c40ca89b8d4b9e924c139a5e9c430565 Mon Sep 17 00:00:00 2001
From: Natalie Chouinard 
Date: Mon, 11 Sep 2023 18:08:17 +
Subject: [PATCH 1/4] [SPIRV] Add -spirv option to DXC driver

Add an option to target SPIR-V to the clang-dxc driver, which sets the
target triple's architecture to logical SPIR-V.
---
 clang/include/clang/Driver/Options.td | 2 ++
 clang/lib/Driver/Driver.cpp   | 6 ++
 clang/test/Driver/dxc_spirv.hlsl  | 4 
 3 files changed, 12 insertions(+)
 create mode 100644 clang/test/Driver/dxc_spirv.hlsl

diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index e63158fb0e5333a..81b22d755f014ed 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -8352,3 +8352,5 @@ def dxc_disable_validation : DXCFlag<"Vd">,
 def : Option<["/", "-"], "Qembed_debug", KIND_FLAG>, Group,
   Flags<[Ignored, NoXarchOption]>, Visibility<[DXCOption]>,
   HelpText<"Embed PDB in shader container (ignored)">;
+def spirv : DXCFlag<"spirv">,
+  HelpText<"Generate SPIR-V code">;
\ No newline at end of file
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index f5fd900a6447fe3..38791955d4a972b 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1303,6 +1303,12 @@ Compilation *Driver::BuildCompilation(ArrayRef ArgList) {
 Diag(diag::err_drv_invalid_directx_shader_module) << TargetProfile;
 
   A->claim();
+
+  if (Args.hasArg(options::OPT_spirv)) {
+llvm::Triple T(TargetTriple);
+T.setArch(llvm::Triple::spirv);
+TargetTriple = T.str();
+  }
 } else {
   Diag(diag::err_drv_dxc_missing_target_profile);
 }
diff --git a/clang/test/Driver/dxc_spirv.hlsl b/clang/test/Driver/dxc_spirv.hlsl
new file mode 100644
index 000..387b71ca58ada18
--- /dev/null
+++ b/clang/test/Driver/dxc_spirv.hlsl
@@ -0,0 +1,4 @@
+// RUN: %clang_dxc -T cs_6_0 -spirv -### %s 2>&1 | FileCheck %s
+
+// CHECK: "-triple" "spirv-unknown-shadermodel6.0-compute"
+// CHECK-SAME: "-x" "hlsl"
\ No newline at end of file

>From 2b7154784fe742a4f86684f474cd658e5be121ab Mon Sep 17 00:00:00 2001
From: Natalie Chouinard 
Date: Tue, 24 Oct 2023 14:40:36 +
Subject: [PATCH 2/4] Add TODO

---
 clang/lib/Driver/Driver.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 38791955d4a972b..f9339b0a9c2bfac 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1304,6 +1304,7 @@ Compilation *Driver::BuildCompilation(ArrayRef ArgList) {
 
   A->claim();
 
+  // TODO: Specify Vulkan target environment somewhere in the triple.
   if (Args.hasArg(options::OPT_spirv)) {
 llvm::Triple T(TargetTriple);
 T.setArch(llvm::Triple::spirv);

>From 714829fb4f7fc076025747334e82cc48340db84e Mon Sep 17 00:00:00 2001
From: Natalie Chouinard 
Date: Tue, 24 Oct 2023 14:51:20 +
Subject: [PATCH 3/4] EOF newlines

---
 clang/include/clang/Driver/Options.td | 2 +-
 clang/test/Driver/dxc_spirv.hlsl  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index 81b22d755f014ed..af4790b6f6a7cfe 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -8353,4 +8353,4 @@ def : Option<["/", "-"], "Qembed_debug", KIND_FLAG>, 
Group,
   Flags<[Ignored, NoXarchOption]>, Visibility<[DXCOption]>,
   HelpText<"Embed PDB in shader container (ignored)">;
 def spirv : DXCFlag<"spirv">,
-  HelpText<"Generate SPIR-V code">;
\ No newline at end of file
+  HelpText<"Generate SPIR-V code">;
diff --git a/clang/test/Driver/dxc_spirv.hlsl b/clang/test/Driver/dxc_spirv.hlsl
index 387b71ca58ada18..a3c5c30af06e3c8 100644
--- a/clang/test/Driver/dxc_spirv.hlsl
+++ b/clang/test/Driver/dxc_spirv.hlsl
@@ -1,4 +1,4 @@
 // RUN: %clang_dxc -T cs_6_0 -spirv -### %s 2>&1 | FileCheck %s
 
 // CHECK: "-triple" "spirv-unknown-shadermodel6.0-compute"
-// CHECK-SAME: "-x" "hlsl"
\ No newline at end of file
+// CHECK-SAME: "-x" "hlsl"

>From 2a54d11bcf2eaf23e170f2dc152288957308 Mon Sep 17 00:00:00 2001
From: Natalie Chouinard 
Date: Tue, 24 Oct 2023 15:16:38 +
Subject: [PATCH 4/4] Fixup test

---
 clang/test/Driver/hlsl-lang-targets-spirv.hlsl | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/clang/test/Driver/hlsl-lang-targets-spirv.hlsl 
b/clang/test/Driver/hlsl-lang-targets-spirv.hlsl
index ff29f143ba1dc8e..e04d71263770bbb 100644
--- a/clang/test/Driver/hlsl-lang-targets-spirv.hlsl
+++ b/clang/test/Driver/hlsl-lang-targets-spirv.hlsl
@@ -2,8 +2,8 @@
 
 // Supported targets
 //
-// RUN: %clang -target dxil-unknown-shadermodel6.2-pixel %s -S -o /dev/null 
2>&1 | FileCheck --check-prefix=CHECK-VALID %s
-// RUN: %clang -target 

[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-10-24 Thread Natalie Chouinard via cfe-commits

https://github.com/sudonatalie edited 
https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-10-24 Thread Natalie Chouinard via cfe-commits

https://github.com/sudonatalie updated 
https://github.com/llvm/llvm-project/pull/65989

>From 46b615e1c40ca89b8d4b9e924c139a5e9c430565 Mon Sep 17 00:00:00 2001
From: Natalie Chouinard 
Date: Mon, 11 Sep 2023 18:08:17 +
Subject: [PATCH 1/2] [SPIRV] Add -spirv option to DXC driver

Add an option to target SPIR-V to the clang-dxc driver, which sets the
target triple's architecture to logical SPIR-V.
---
 clang/include/clang/Driver/Options.td | 2 ++
 clang/lib/Driver/Driver.cpp   | 6 ++
 clang/test/Driver/dxc_spirv.hlsl  | 4 
 3 files changed, 12 insertions(+)
 create mode 100644 clang/test/Driver/dxc_spirv.hlsl

diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index e63158fb0e5333a..81b22d755f014ed 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -8352,3 +8352,5 @@ def dxc_disable_validation : DXCFlag<"Vd">,
 def : Option<["/", "-"], "Qembed_debug", KIND_FLAG>, Group,
   Flags<[Ignored, NoXarchOption]>, Visibility<[DXCOption]>,
   HelpText<"Embed PDB in shader container (ignored)">;
+def spirv : DXCFlag<"spirv">,
+  HelpText<"Generate SPIR-V code">;
\ No newline at end of file
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index f5fd900a6447fe3..38791955d4a972b 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1303,6 +1303,12 @@ Compilation *Driver::BuildCompilation(ArrayRef ArgList) {
 Diag(diag::err_drv_invalid_directx_shader_module) << TargetProfile;
 
   A->claim();
+
+  if (Args.hasArg(options::OPT_spirv)) {
+llvm::Triple T(TargetTriple);
+T.setArch(llvm::Triple::spirv);
+TargetTriple = T.str();
+  }
 } else {
   Diag(diag::err_drv_dxc_missing_target_profile);
 }
diff --git a/clang/test/Driver/dxc_spirv.hlsl b/clang/test/Driver/dxc_spirv.hlsl
new file mode 100644
index 000..387b71ca58ada18
--- /dev/null
+++ b/clang/test/Driver/dxc_spirv.hlsl
@@ -0,0 +1,4 @@
+// RUN: %clang_dxc -T cs_6_0 -spirv -### %s 2>&1 | FileCheck %s
+
+// CHECK: "-triple" "spirv-unknown-shadermodel6.0-compute"
+// CHECK-SAME: "-x" "hlsl"
\ No newline at end of file

>From 2b7154784fe742a4f86684f474cd658e5be121ab Mon Sep 17 00:00:00 2001
From: Natalie Chouinard 
Date: Tue, 24 Oct 2023 14:40:36 +
Subject: [PATCH 2/2] Add TODO

---
 clang/lib/Driver/Driver.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 38791955d4a972b..f9339b0a9c2bfac 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1304,6 +1304,7 @@ Compilation *Driver::BuildCompilation(ArrayRef ArgList) {
 
   A->claim();
 
+  // TODO: Specify Vulkan target environment somewhere in the triple.
   if (Args.hasArg(options::OPT_spirv)) {
 llvm::Triple T(TargetTriple);
 T.setArch(llvm::Triple::spirv);

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


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-09-12 Thread Nathan Gauër via cfe-commits

https://github.com/Keenuts review_requested 
https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-09-12 Thread via cfe-commits

llvmbot wrote:

@llvm/pr-subscribers-clang-driver


Changes

Add an option to target SPIR-V to the clang-dxc driver, which sets the target 
triple's architecture to logical SPIR-V.
--
Full diff: https://github.com/llvm/llvm-project/pull/65989.diff

4 Files Affected:

- (modified) clang/include/clang/Driver/Options.td (+2) 
- (modified) clang/lib/Driver/Driver.cpp (+6) 
- (added) clang/test/Driver/dxc_spirv.hlsl (+4) 
- (modified) clang/test/Driver/hlsl-lang-targets.hlsl (+2-3) 



diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index a5f5ca29053b43b..a7b8f1d9a0e0f2d 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -8258,3 +8258,5 @@ def dxc_disable_validation : DXCFlag<"Vd">,
 def : Option<["/", "-"], "Qembed_debug", KIND_FLAG>, Group,
   Flags<[Ignored, NoXarchOption]>, Visibility<[DXCOption]>,
   HelpText<"Embed PDB in shader container (ignored)">;
+def spirv : DXCFlag<"spirv">,
+  HelpText<"Generate SPIR-V code">;
\ No newline at end of file
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index ba723eac2a7ee74..39b1df45a410db7 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1302,6 +1302,12 @@ Compilation *Driver::BuildCompilation(ArrayRef ArgList) {
 Diag(diag::err_drv_invalid_directx_shader_module) << TargetProfile;
 
   A->claim();
+
+  if (Args.hasArg(options::OPT_spirv)) {
+llvm::Triple T(TargetTriple);
+T.setArch(llvm::Triple::spirv);
+TargetTriple = T.str();
+  }
 } else {
   Diag(diag::err_drv_dxc_missing_target_profile);
 }
diff --git a/clang/test/Driver/dxc_spirv.hlsl b/clang/test/Driver/dxc_spirv.hlsl
new file mode 100644
index 000..387b71ca58ada18
--- /dev/null
+++ b/clang/test/Driver/dxc_spirv.hlsl
@@ -0,0 +1,4 @@
+// RUN: %clang_dxc -T cs_6_0 -spirv -### %s 2>&1 | FileCheck %s
+
+// CHECK: "-triple" "spirv-unknown-shadermodel6.0-compute"
+// CHECK-SAME: "-x" "hlsl"
\ No newline at end of file
diff --git a/clang/test/Driver/hlsl-lang-targets.hlsl 
b/clang/test/Driver/hlsl-lang-targets.hlsl
index a757e2a3cdf74de..9adfeb3d0753b40 100644
--- a/clang/test/Driver/hlsl-lang-targets.hlsl
+++ b/clang/test/Driver/hlsl-lang-targets.hlsl
@@ -1,7 +1,7 @@
 // RUN: not %clang -target x86_64-unknown-unknown %s 2>&1 | FileCheck %s 
--check-prefix=X86
 // RUN: not %clang -target dxil-unknown-unknown %s 2>&1 | FileCheck %s 
--check-prefix=DXIL
 // RUN: not %clang -target x86_64-unknown-shadermodel %s 2>&1 | FileCheck %s 
--check-prefix=SM
-// RUN: not %clang -target spirv64-unknown-unknown %s 2>&1 | FileCheck %s 
--check-prefix=SPIRV
+// RUN: not %clang -target spirv-unknown-unknown %s 2>&1 | FileCheck %s 
--check-prefix=SPIRV
 
 
 // A completely unsupported target...
@@ -10,5 +10,4 @@
 // Poorly specified targets
 // DXIL: error: HLSL code generation is unsupported for target 
'dxil-unknown-unknown'
 // SM: error: HLSL code generation is unsupported for target 
'x86_64-unknown-shadermodel'
-
-// FIXME// SPIRV: error: HLSL code generation is unsupported for target 
'spirv64-unknown-unknown'
+// SPIRV: error: HLSL code generation is unsupported for target 
'spirv-unknown-unknown'




https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-09-12 Thread via cfe-commits

llvmbot wrote:

@llvm/pr-subscribers-clang


Changes

Add an option to target SPIR-V to the clang-dxc driver, which sets the target 
triple's architecture to logical SPIR-V.
--
Full diff: https://github.com/llvm/llvm-project/pull/65989.diff

4 Files Affected:

- (modified) clang/include/clang/Driver/Options.td (+2) 
- (modified) clang/lib/Driver/Driver.cpp (+6) 
- (added) clang/test/Driver/dxc_spirv.hlsl (+4) 
- (modified) clang/test/Driver/hlsl-lang-targets.hlsl (+2-3) 



diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index a5f5ca29053b43b..a7b8f1d9a0e0f2d 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -8258,3 +8258,5 @@ def dxc_disable_validation : DXCFlag<"Vd">,
 def : Option<["/", "-"], "Qembed_debug", KIND_FLAG>, Group,
   Flags<[Ignored, NoXarchOption]>, Visibility<[DXCOption]>,
   HelpText<"Embed PDB in shader container (ignored)">;
+def spirv : DXCFlag<"spirv">,
+  HelpText<"Generate SPIR-V code">;
\ No newline at end of file
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index ba723eac2a7ee74..39b1df45a410db7 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1302,6 +1302,12 @@ Compilation *Driver::BuildCompilation(ArrayRef ArgList) {
 Diag(diag::err_drv_invalid_directx_shader_module) << TargetProfile;
 
   A->claim();
+
+  if (Args.hasArg(options::OPT_spirv)) {
+llvm::Triple T(TargetTriple);
+T.setArch(llvm::Triple::spirv);
+TargetTriple = T.str();
+  }
 } else {
   Diag(diag::err_drv_dxc_missing_target_profile);
 }
diff --git a/clang/test/Driver/dxc_spirv.hlsl b/clang/test/Driver/dxc_spirv.hlsl
new file mode 100644
index 000..387b71ca58ada18
--- /dev/null
+++ b/clang/test/Driver/dxc_spirv.hlsl
@@ -0,0 +1,4 @@
+// RUN: %clang_dxc -T cs_6_0 -spirv -### %s 2>&1 | FileCheck %s
+
+// CHECK: "-triple" "spirv-unknown-shadermodel6.0-compute"
+// CHECK-SAME: "-x" "hlsl"
\ No newline at end of file
diff --git a/clang/test/Driver/hlsl-lang-targets.hlsl 
b/clang/test/Driver/hlsl-lang-targets.hlsl
index a757e2a3cdf74de..9adfeb3d0753b40 100644
--- a/clang/test/Driver/hlsl-lang-targets.hlsl
+++ b/clang/test/Driver/hlsl-lang-targets.hlsl
@@ -1,7 +1,7 @@
 // RUN: not %clang -target x86_64-unknown-unknown %s 2>&1 | FileCheck %s 
--check-prefix=X86
 // RUN: not %clang -target dxil-unknown-unknown %s 2>&1 | FileCheck %s 
--check-prefix=DXIL
 // RUN: not %clang -target x86_64-unknown-shadermodel %s 2>&1 | FileCheck %s 
--check-prefix=SM
-// RUN: not %clang -target spirv64-unknown-unknown %s 2>&1 | FileCheck %s 
--check-prefix=SPIRV
+// RUN: not %clang -target spirv-unknown-unknown %s 2>&1 | FileCheck %s 
--check-prefix=SPIRV
 
 
 // A completely unsupported target...
@@ -10,5 +10,4 @@
 // Poorly specified targets
 // DXIL: error: HLSL code generation is unsupported for target 
'dxil-unknown-unknown'
 // SM: error: HLSL code generation is unsupported for target 
'x86_64-unknown-shadermodel'
-
-// FIXME// SPIRV: error: HLSL code generation is unsupported for target 
'spirv64-unknown-unknown'
+// SPIRV: error: HLSL code generation is unsupported for target 
'spirv-unknown-unknown'




https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-09-12 Thread Natalie Chouinard via cfe-commits

sudonatalie wrote:

@llvm-beanz Can you take a look at this PR? I don't seem to be able to assign 
Reviewers, maybe because I don't have committer status yet.

https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-09-11 Thread via cfe-commits

https://github.com/llvmbot labeled 
https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-09-11 Thread via cfe-commits

https://github.com/llvmbot labeled 
https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-09-11 Thread Natalie Chouinard via cfe-commits

https://github.com/sudonatalie review_requested 
https://github.com/llvm/llvm-project/pull/65989
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [SPIRV] Add -spirv option to DXC driver (PR #65989)

2023-09-11 Thread Natalie Chouinard via cfe-commits

https://github.com/sudonatalie created 
https://github.com/llvm/llvm-project/pull/65989:

Add an option to target SPIR-V to the clang-dxc driver, which sets the target 
triple's architecture to logical SPIR-V.

>From 699235b506e1949293305973429bd3ec3ee1b9e4 Mon Sep 17 00:00:00 2001
From: Natalie Chouinard 
Date: Mon, 11 Sep 2023 18:08:17 +
Subject: [PATCH] [SPIRV] Add -spirv option to DXC driver

Add an option to target SPIR-V to the clang-dxc driver, which sets the
target triple's architecture to logical SPIR-V.
---
 clang/include/clang/Driver/Options.td| 2 ++
 clang/lib/Driver/Driver.cpp  | 6 ++
 clang/test/Driver/dxc_spirv.hlsl | 4 
 clang/test/Driver/hlsl-lang-targets.hlsl | 5 ++---
 4 files changed, 14 insertions(+), 3 deletions(-)
 create mode 100644 clang/test/Driver/dxc_spirv.hlsl

diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index a5f5ca29053b43b..a7b8f1d9a0e0f2d 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -8258,3 +8258,5 @@ def dxc_disable_validation : DXCFlag<"Vd">,
 def : Option<["/", "-"], "Qembed_debug", KIND_FLAG>, Group,
   Flags<[Ignored, NoXarchOption]>, Visibility<[DXCOption]>,
   HelpText<"Embed PDB in shader container (ignored)">;
+def spirv : DXCFlag<"spirv">,
+  HelpText<"Generate SPIR-V code">;
\ No newline at end of file
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index ba723eac2a7ee74..39b1df45a410db7 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1302,6 +1302,12 @@ Compilation *Driver::BuildCompilation(ArrayRef ArgList) {
 Diag(diag::err_drv_invalid_directx_shader_module) << TargetProfile;
 
   A->claim();
+
+  if (Args.hasArg(options::OPT_spirv)) {
+llvm::Triple T(TargetTriple);
+T.setArch(llvm::Triple::spirv);
+TargetTriple = T.str();
+  }
 } else {
   Diag(diag::err_drv_dxc_missing_target_profile);
 }
diff --git a/clang/test/Driver/dxc_spirv.hlsl b/clang/test/Driver/dxc_spirv.hlsl
new file mode 100644
index 000..387b71ca58ada18
--- /dev/null
+++ b/clang/test/Driver/dxc_spirv.hlsl
@@ -0,0 +1,4 @@
+// RUN: %clang_dxc -T cs_6_0 -spirv -### %s 2>&1 | FileCheck %s
+
+// CHECK: "-triple" "spirv-unknown-shadermodel6.0-compute"
+// CHECK-SAME: "-x" "hlsl"
\ No newline at end of file
diff --git a/clang/test/Driver/hlsl-lang-targets.hlsl 
b/clang/test/Driver/hlsl-lang-targets.hlsl
index a757e2a3cdf74de..9adfeb3d0753b40 100644
--- a/clang/test/Driver/hlsl-lang-targets.hlsl
+++ b/clang/test/Driver/hlsl-lang-targets.hlsl
@@ -1,7 +1,7 @@
 // RUN: not %clang -target x86_64-unknown-unknown %s 2>&1 | FileCheck %s 
--check-prefix=X86
 // RUN: not %clang -target dxil-unknown-unknown %s 2>&1 | FileCheck %s 
--check-prefix=DXIL
 // RUN: not %clang -target x86_64-unknown-shadermodel %s 2>&1 | FileCheck %s 
--check-prefix=SM
-// RUN: not %clang -target spirv64-unknown-unknown %s 2>&1 | FileCheck %s 
--check-prefix=SPIRV
+// RUN: not %clang -target spirv-unknown-unknown %s 2>&1 | FileCheck %s 
--check-prefix=SPIRV
 
 
 // A completely unsupported target...
@@ -10,5 +10,4 @@
 // Poorly specified targets
 // DXIL: error: HLSL code generation is unsupported for target 
'dxil-unknown-unknown'
 // SM: error: HLSL code generation is unsupported for target 
'x86_64-unknown-shadermodel'
-
-// FIXME// SPIRV: error: HLSL code generation is unsupported for target 
'spirv64-unknown-unknown'
+// SPIRV: error: HLSL code generation is unsupported for target 
'spirv-unknown-unknown'

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