[clang] [llvm] [HLSL] Add support for user semantics (PR #153424)

2025-09-20 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts updated https://github.com/llvm/llvm-project/pull/153424 From 445bdafaa7b32b6154f3e7a414463818d90ee20a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?= Date: Tue, 12 Aug 2025 18:06:17 +0200 Subject: [PATCH 1/5] [HLSL] Add support for input semantics in s

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-09-20 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts auto_merge_enabled https://github.com/llvm/llvm-project/pull/152537 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-09-20 Thread Nathan Gauër via cfe-commits
Keenuts wrote: @llvm-beanz friendly ping https://github.com/llvm/llvm-project/pull/152537 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-09-20 Thread Nathan Gauër via cfe-commits
@@ -282,14 +327,17 @@ void Parser::ParseHLSLAnnotations(ParsedAttributes &Attrs, return; } } break; - case ParsedAttr::UnknownAttribute: -Diag(Loc, diag::err_unknown_hlsl_semantic) << II; -return; - case ParsedAttr::AT_HLSLSV_GroupThreadID: - case ParsedA

[clang] [HLSL] Allow input semantics on structs (PR #159047)

2025-09-19 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts updated https://github.com/llvm/llvm-project/pull/159047 From 445bdafaa7b32b6154f3e7a414463818d90ee20a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?= Date: Tue, 12 Aug 2025 18:06:17 +0200 Subject: [PATCH 1/6] [HLSL] Add support for input semantics in s

[clang] [HLSL] Allow input semantics on structs (PR #159047)

2025-09-19 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts updated https://github.com/llvm/llvm-project/pull/159047 From 445bdafaa7b32b6154f3e7a414463818d90ee20a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?= Date: Tue, 12 Aug 2025 18:06:17 +0200 Subject: [PATCH 1/6] [HLSL] Add support for input semantics in s

[clang] [HLSL] Allow input semantics on structs (PR #159047)

2025-09-19 Thread Nathan Gauër via cfe-commits
Keenuts wrote: > EDIT: I was looking at the ast-dump, which was showing an attribute without > any parameters. Looking closer, I saw that you add the decl to the attribute. > That creates an obvious link. We just need to make sure the ast-dump reflects > that. Modified the code so ast-dump sh

[clang] [HLSL] Allow input semantics on structs (PR #159047)

2025-09-19 Thread Nathan Gauër via cfe-commits
@@ -769,23 +769,80 @@ void SemaHLSL::ActOnTopLevelFunction(FunctionDecl *FD) { } } -bool SemaHLSL::isSemanticValid(FunctionDecl *FD, DeclaratorDecl *D) { - const auto *AnnotationAttr = D->getAttr(); - if (AnnotationAttr) { -CheckSemanticAnnotation(FD, D, AnnotationAttr

[clang] [HLSL] Allow input semantics on structs (PR #159047)

2025-09-19 Thread Nathan Gauër via cfe-commits
@@ -769,23 +769,80 @@ void SemaHLSL::ActOnTopLevelFunction(FunctionDecl *FD) { } } -bool SemaHLSL::isSemanticValid(FunctionDecl *FD, DeclaratorDecl *D) { - const auto *AnnotationAttr = D->getAttr(); - if (AnnotationAttr) { -CheckSemanticAnnotation(FD, D, AnnotationAttr

[clang] [HLSL] Allow input semantics on structs (PR #159047)

2025-09-19 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts updated https://github.com/llvm/llvm-project/pull/159047 From 445bdafaa7b32b6154f3e7a414463818d90ee20a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?= Date: Tue, 12 Aug 2025 18:06:17 +0200 Subject: [PATCH 1/4] [HLSL] Add support for input semantics in s

[clang] [clang] fix clang_cmake_builddir (PR #155844)

2025-09-18 Thread Nathan Gauër via cfe-commits
Keenuts wrote: Thanks, I can reproduce with the following steps: ``` $ cmake -Hllvm -GNinja -B/tmp/nix-llvm/ -DBUILD_TESTING=OFF \ -DCLANGD_BUILD_XPC:BOOL=FALSE -DLLVM_ENABLE_RTTI:BOOL=TRUE \ -DLLVM_INCLUDE_TESTS:BOOL=FALSE -DCMAKE_BUILD_TYPE=Debug \ -DLLVM_OPTIMIZED_TABLEGEN=1 -DLLVM_ENAB

[clang] [llvm] [HLSL] Add support for user semantics (PR #153424)

2025-09-18 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts updated https://github.com/llvm/llvm-project/pull/153424 From 445bdafaa7b32b6154f3e7a414463818d90ee20a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?= Date: Tue, 12 Aug 2025 18:06:17 +0200 Subject: [PATCH 1/4] [HLSL] Add support for input semantics in s

[clang] [NFC][clang] replace a C-array with std::array (PR #158047)

2025-09-17 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts updated https://github.com/llvm/llvm-project/pull/158047 From e42d05ca3c20817d9869f3e4cc3b98087b285175 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?= Date: Thu, 11 Sep 2025 13:46:04 +0200 Subject: [PATCH 1/2] [NFC][clang] replace a C-array with std::ar

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-09-17 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts updated https://github.com/llvm/llvm-project/pull/152537 From d90b78fb28be3c444fcc0d8113350264759080c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?= Date: Wed, 6 Aug 2025 18:16:58 +0200 Subject: [PATCH 1/5] [HLSL] Rewrite semantics parsing This is th

[clang] [Clang][Doc] Modify HLSL semantics documentation (PR #157841)

2025-09-17 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts created https://github.com/llvm/llvm-project/pull/157841 HLSL semantics are split between system semantics with some kind of spelling, and user semantics with no actual spelling. Those have been documented as normal function attributes, but they'd benefit from a cust

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-09-17 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts updated https://github.com/llvm/llvm-project/pull/152537 From d90b78fb28be3c444fcc0d8113350264759080c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?= Date: Wed, 6 Aug 2025 18:16:58 +0200 Subject: [PATCH 1/4] [HLSL] Rewrite semantics parsing This is th

[clang] [clang] fix clang_cmake_builddir (PR #155844)

2025-09-15 Thread Nathan Gauër via cfe-commits
Keenuts wrote: (@rjodinchr FYI) Hi, so to understand, is it when you do something like `cmake -DCMAKE_INSTALL_DIR=some/privileged/location` then this writes to the INSTALL_DIR when doing `ninja -C build` (so before the installation step?) https://github.com/llvm/llvm-project/pull/155844 _

[clang] [Clang][docs] Modify generator for HLSL semantics documentation (PR #157841)

2025-09-15 Thread Nathan Gauër via cfe-commits
Keenuts wrote: Adding Erich Keans, might be a more accurate reviewer since this touches attributes https://github.com/llvm/llvm-project/pull/157841 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo

[clang] [clang] fix clang_cmake_builddir (PR #155844)

2025-09-15 Thread Nathan Gauër via cfe-commits
Keenuts wrote: @peterwaller-arm do you have a way to get/reproduce the cmake configuration command line? This way we could check differences in practice and figure out what nixos and clspv require and find a common solution? https://github.com/llvm/llvm-project/pull/155844

[clang] Revert "[clang] fix clang_cmake_builddir" (PR #158684)

2025-09-15 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts created https://github.com/llvm/llvm-project/pull/158684 Reverts llvm/llvm-project#155844 Romaric is OOO for the next 2 weeks and I don't have the context on the other part (clspv) to propose a fix forward. Reverting for now. From b1c4787e8da9da260ba6d4e692b57fc9cc7

[clang] [NFC][clang] replace a C-array with std::array (PR #158047)

2025-09-15 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts closed https://github.com/llvm/llvm-project/pull/158047 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL] Add support for input semantics in structs (PR #153224)

2025-09-14 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts updated https://github.com/llvm/llvm-project/pull/153224 From 7b09222a9792d9e83c68acea3429e6bd1622e0b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?= Date: Tue, 12 Aug 2025 18:06:17 +0200 Subject: [PATCH 1/2] [HLSL] Add support for input semantics in s

[clang] [NFC][clang] replace a C-array with std::array (PR #158047)

2025-09-14 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts created https://github.com/llvm/llvm-project/pull/158047 Follow up to #157841, replacing the C-array with std::array so iterators can be used. From e42d05ca3c20817d9869f3e4cc3b98087b285175 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?= Date: Thu, 11

[clang] [Clang][docs] Modify generator for HLSL semantics documentation (PR #157841)

2025-09-13 Thread Nathan Gauër via cfe-commits
@@ -5209,6 +5209,14 @@ class SpellingList { Other.Spellings[Kind].end()); } } + + unsigned getSpellingCount() const { +unsigned Count = 0; Keenuts wrote: Still kept a loop as we have a C-array of vectors, so no proper it

[clang] [Clang][Doc] Modify HLSL semantics documentation (PR #157841)

2025-09-12 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts edited https://github.com/llvm/llvm-project/pull/157841 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL] Add support for input semantics in structs (PR #153224)

2025-09-12 Thread Nathan Gauër via cfe-commits
Keenuts wrote: This PR has diagnostics in codegen. Closing this to rework that part. https://github.com/llvm/llvm-project/pull/153224 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Revert "[HLSL] Rewrite semantics parsing" (PR #157718)

2025-09-12 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts created https://github.com/llvm/llvm-project/pull/157718 Reverts llvm/llvm-project#152537 Broke the build in some cases. Need to investigate more for a proper solution. From d47a574d9ab76ae599a1d9dadbbaf9709ab35758 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Ga

[clang] Revert "[HLSL] Rewrite semantics parsing" (PR #157718)

2025-09-12 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts auto_merge_enabled https://github.com/llvm/llvm-project/pull/157718 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][docs] Modify generator for HLSL semantics documentation (PR #157841)

2025-09-12 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts edited https://github.com/llvm/llvm-project/pull/157841 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Reapply "[HLSL] Rewrite semantics parsing" (#157718) (PR #158044)

2025-09-12 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts closed https://github.com/llvm/llvm-project/pull/158044 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] fix clang_cmake_builddir (PR #155844)

2025-09-12 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts closed https://github.com/llvm/llvm-project/pull/155844 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL] Add support for input semantics in structs (PR #153224)

2025-09-12 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts closed https://github.com/llvm/llvm-project/pull/153224 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Reapply "[HLSL] Rewrite semantics parsing" (#157718) (PR #158044)

2025-09-12 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts created https://github.com/llvm/llvm-project/pull/158044 This is a re-land of #152537 now that #157841 is merged. From abdacf76419730fc9a111b7c084367f0da096c61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?= Date: Wed, 10 Sep 2025 14:13:38 +0200 Subjec

[clang] [Clang][docs] Modify generator for HLSL semantics documentation (PR #157841)

2025-09-12 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts closed https://github.com/llvm/llvm-project/pull/157841 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Doc] Modify generator for HLSL semantics documentation (PR #157841)

2025-09-12 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts edited https://github.com/llvm/llvm-project/pull/157841 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][docs] Modify generator for HLSL semantics documentation (PR #157841)

2025-09-12 Thread Nathan Gauër via cfe-commits
Keenuts wrote: Thanks for the reviews! Will merge tomorrow morning https://github.com/llvm/llvm-project/pull/157841 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][docs] Modify generator for HLSL semantics documentation (PR #157841)

2025-09-12 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts updated https://github.com/llvm/llvm-project/pull/157841 From acdef94a57b421b815743f51937f7e333fbed74d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?= Date: Wed, 10 Sep 2025 13:53:30 +0200 Subject: [PATCH 1/3] [Clang][Doc] Modify HLSL semantics document

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-09-12 Thread Nathan Gauër via cfe-commits
Keenuts wrote: I was able to reproduce the build issue. Turns out we'd benefit from a different documentation generation for those. Will re-land once #157841 is merged. https://github.com/llvm/llvm-project/pull/152537 ___ cfe-commits mailing list cfe

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-09-12 Thread Nathan Gauër via cfe-commits
Keenuts wrote: Thanks! I'll try to repro and figure out the best solution to fix this, but in the meanting, rolling this back (https://github.com/llvm/llvm-project/pull/157718) https://github.com/llvm/llvm-project/pull/152537 ___ cfe-commits mailing

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-09-09 Thread Nathan Gauër via cfe-commits
@@ -118,6 +118,47 @@ static void fixSeparateAttrArgAndNumber(StringRef ArgStr, SourceLocation ArgLoc, Slot = new (Ctx) IdentifierLoc(ArgLoc, PP.getIdentifierInfo(FixedArg)); } +Parser::ParsedSemantic Parser::ParseHLSLSemantic() { + assert(Tok.is(tok::identifier) && "Not a

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-09-09 Thread Nathan Gauër via cfe-commits
@@ -4943,13 +4932,35 @@ def HLSLResourceBinding: InheritableAttr { }]; } -def HLSLSV_Position : HLSLAnnotationAttr { - let Spellings = [HLSLAnnotation<"sv_position">]; - let Subjects = SubjectList<[ParmVar, Field]>; +def HLSLUnparsedSemantic : HLSLAnnotationAttr { + let S

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-09-09 Thread Nathan Gauër via cfe-commits
Keenuts wrote: > I'm guessing this change broke the build for me: > > ``` > FAILED: [code=1] docs/AttributeReference.rst > /var/tmp/portage/llvm-core/clang-22.0.0./work/x/y/clang-.arm64/docs/AttributeReference.rst > > cd /var/tmp/portage/llvm-core/clang-22.0.0./work/x/y/clang-.arm64/d

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-09-09 Thread Nathan Gauër via cfe-commits
Keenuts wrote: Thanks for the reviews! Applied the last small bits https://github.com/llvm/llvm-project/pull/152537 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL] Add support for input semantics in structs (PR #153224)

2025-09-09 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts updated https://github.com/llvm/llvm-project/pull/153224 From 7b09222a9792d9e83c68acea3429e6bd1622e0b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?= Date: Tue, 12 Aug 2025 18:06:17 +0200 Subject: [PATCH] [HLSL] Add support for input semantics in struc

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-09-09 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts updated https://github.com/llvm/llvm-project/pull/152537 From d90b78fb28be3c444fcc0d8113350264759080c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?= Date: Wed, 6 Aug 2025 18:16:58 +0200 Subject: [PATCH 1/3] [HLSL] Rewrite semantics parsing This is th

[clang] [HLSL] Add support for input semantics in structs (PR #153224)

2025-09-09 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts ready_for_review https://github.com/llvm/llvm-project/pull/153224 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL] Add support for input semantics in structs (PR #153224)

2025-09-09 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts updated https://github.com/llvm/llvm-project/pull/153224 From f3b509a3d1292fedab3b1dd9b937dd67d30df2f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?= Date: Tue, 12 Aug 2025 18:06:17 +0200 Subject: [PATCH] [HLSL] Add support for input semantics in struc

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-09-09 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts closed https://github.com/llvm/llvm-project/pull/152537 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] fix clang_cmake_builddir (PR #155844)

2025-09-08 Thread Nathan Gauër via cfe-commits
Keenuts wrote: @tstellar would you be the one to review the build files? https://github.com/llvm/llvm-project/pull/155844 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-09-03 Thread Nathan Gauër via cfe-commits
Keenuts wrote: @llvm-beanz anything blocking this review? https://github.com/llvm/llvm-project/pull/152537 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [HLSL][DirectX] Finish WaveGetLaneCount implementation (PR #156338)

2025-09-01 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts created https://github.com/llvm/llvm-project/pull/156338 Some testing was lacking, as well as DirectX lowering of the intrinsic. Fixes #99159 From fd5bfbba2de4ae25336487b9778d56b5292d60ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?= Date: Mon, 1 Se

[clang] [clang] fix clang_cmake_builddir (PR #155844)

2025-09-01 Thread Nathan Gauër via cfe-commits
Keenuts wrote: > @Keenuts am I really the person you had in mind when asking for a review? Was searching for somebody who could double-check, saw you were part of the release status team, so guessed maybe you were familiar with the importants bits around those build directories bits? Do you kn

[clang] [clang] fix clang_cmake_builddir (PR #155844)

2025-09-01 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts edited https://github.com/llvm/llvm-project/pull/155844 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] fix clang_cmake_builddir (PR #155844)

2025-09-01 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts approved this pull request. Looks ok to me. So far seems like even on main, setting `-DLLVM_LIBDIR_SUFFIX` has no effect so seems like this is ok Adding @kwk in case I'm missing something https://github.com/llvm/llvm-project/pull/155844 ___

[clang] [HLSL][SPIRV] Add -fspv-use-unknown-image-format option (PR #155664)

2025-08-28 Thread Nathan Gauër via cfe-commits
@@ -517,14 +517,65 @@ llvm::Type *CommonSPIRTargetCodeGenInfo::getHLSLType( return nullptr; } +static unsigned +getImageFormat(const LangOptions &LangOpts, + const HLSLAttributedResourceType::Attributes &attributes, + llvm::Type *SampledType, Qual

[clang] [HLSL][SPIRV] Add -fspv-use-unknown-image-format option (PR #155664)

2025-08-28 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts approved this pull request. https://github.com/llvm/llvm-project/pull/155664 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL][SPIRV] Add -fspv-use-unknown-image-format option (PR #155664)

2025-08-28 Thread Nathan Gauër via cfe-commits
@@ -9480,6 +9480,16 @@ def fvk_use_scalar_layout : DXCFlag<"fvk-use-scalar-layout">, HelpText<"Use scalar memory layout for Vulkan resources.">; +def fhlsl_spv_use_unknown_image_format +: Flag<["-"], "fspv-use-unknown-image-format">, + Group, + Visibili

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-08-25 Thread Nathan Gauër via cfe-commits
Keenuts wrote: Will rebase after the approvals if possible so you keep a working "review changes since last review" https://github.com/llvm/llvm-project/pull/152537 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-08-25 Thread Nathan Gauër via cfe-commits
Keenuts wrote: > My only concern is that the parser does not allow digits in the middle of the > semantic name. I believe that is possible for user semantics. It works for > DXC. Otherwise LGTM. Thank you all! reworked the semantic parsing to allow digits in the middle of the identifier. This

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-08-25 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts updated https://github.com/llvm/llvm-project/pull/152537 From d155488891e713be629b65c4a438499f494ebafc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?= Date: Wed, 6 Aug 2025 18:16:58 +0200 Subject: [PATCH 1/4] [HLSL] Rewrite semantics parsing This is th

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-08-25 Thread Nathan Gauër via cfe-commits
@@ -118,6 +118,48 @@ static void fixSeparateAttrArgAndNumber(StringRef ArgStr, SourceLocation ArgLoc, Slot = new (Ctx) IdentifierLoc(ArgLoc, PP.getIdentifierInfo(FixedArg)); } +Parser::ParsedSemantic Parser::ParseHLSLSemantic() { + assert(Tok.is(tok::identifier) && "Not a

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-08-25 Thread Nathan Gauër via cfe-commits
@@ -232,6 +232,41 @@ class HLSLAnnotationAttr : public InheritableAttr { } }; +class HLSLSemanticAttr : public HLSLAnnotationAttr { + unsigned SemanticIndex : 30; + LLVM_PREFERRED_TYPE(bool) + unsigned SemanticIndexable : 1; Keenuts wrote: I wanted speci

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-08-25 Thread Nathan Gauër via cfe-commits
@@ -393,6 +393,14 @@ def warn_hlsl_langstd_minimal : "recommend using %1 instead">, InGroup; +def err_hlsl_semantic_index_overlap : Error<"semantic index overlap %0">; + +def err_hlsl_semantic_missing : Error<"semantic annotations must be present "

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-08-25 Thread Nathan Gauër via cfe-commits
@@ -396,7 +396,7 @@ class ClangGCC } // HLSL Annotation spellings -class HLSLAnnotation : Spelling; +class HLSLAnnotation : Spelling {} Keenuts wrote: I suppose just a left-over from the early iterations. Reverting! https://github.com/llvm/llvm-project/pull/

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-08-25 Thread Nathan Gauër via cfe-commits
@@ -1513,29 +1517,71 @@ bool SemaHLSL::diagnosePositionType(QualType T, const ParsedAttr &AL) { return true; } -void SemaHLSL::handleSV_PositionAttr(Decl *D, const ParsedAttr &AL) { - auto *VD = cast(D); - if (!diagnosePositionType(VD->getType(), AL)) -return; - - D-

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-08-25 Thread Nathan Gauër via cfe-commits
@@ -172,6 +193,9 @@ class CGHLSLRuntime { llvm::Triple::ArchType getArch(); llvm::DenseMap LayoutTypes; + + std::unordered_set ActiveInputSemantics; Keenuts wrote: Ah right, I should move this to one of the children commit (and change to StringSet), tha

[clang] [HLSL] Rewrite semantics parsing (PR #152537)

2025-08-07 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts created https://github.com/llvm/llvm-project/pull/152537 This is the first PR to implement the semantics proposal: https://github.com/llvm/wg-hlsl/blob/main/proposals/0031-semantics.md This PR focuses on the changes required to handle user semantics, but tried to be

[clang] [llvm] [SPIRV][HLSL] Add DXC compatibility option for extension (PR #151554)

2025-08-01 Thread Nathan Gauër via cfe-commits
@@ -173,24 +173,84 @@ bool isLegalValidatorVersion(StringRef ValVersionStr, const Driver &D) { return true; } -std::string getSpirvExtArg(ArrayRef SpvExtensionArgs) { +void getSpirvExtOperand(llvm::StringRef SpvExtensionArg, raw_ostream &out) { + // The extensions that are

[clang] [llvm] [SPIRV][HLSL] Add DXC compatibility option for extension (PR #151554)

2025-08-01 Thread Nathan Gauër via cfe-commits
@@ -14,6 +14,14 @@ // RUN: %clang_dxc -spirv -Tlib_6_7 -### %s -fspv-extension=SPV_TEST1 -fspv-extension=KHR -fspv-extension=SPV_TEST2 2>&1 | FileCheck %s -check-prefix=TEST3 // TEST3: "-spirv-ext=+SPV_TEST1,KHR,+SPV_TEST2" +// Merge KHR with other extensions. +// RUN: %clan

[clang] [llvm] [SPIRV][HLSL] Add DXC compatibility option for extension (PR #151554)

2025-08-01 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts approved this pull request. Just the formatting issue on the CI and 2 nits https://github.com/llvm/llvm-project/pull/151554 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listin

[clang] [llvm] [SPIRV][HLSL] Add DXC compatibility option for extension (PR #151554)

2025-08-01 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts edited https://github.com/llvm/llvm-project/pull/151554 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL][SPIRV] Add vk::binding attribute (PR #150957)

2025-08-01 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts approved this pull request. https://github.com/llvm/llvm-project/pull/150957 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL][SPIRV] Add vk::binding attribute (PR #150957)

2025-08-01 Thread Nathan Gauër via cfe-commits
@@ -4894,6 +4894,14 @@ def HLSLSV_GroupIndex: HLSLAnnotationAttr { let Documentation = [HLSLSV_GroupIndexDocs]; } +def HLSLVkBinding : InheritableAttr { + let Spellings = [CXX11<"vk", "binding">]; + let Subjects = SubjectList<[HLSLBufferObj, ExternalGlobalVar], ErrorDiag>;

[clang] [HLSL][SPIRV] Add vk::binding attribute (PR #150957)

2025-07-30 Thread Nathan Gauër via cfe-commits
@@ -4894,6 +4894,14 @@ def HLSLSV_GroupIndex: HLSLAnnotationAttr { let Documentation = [HLSLSV_GroupIndexDocs]; } +def HLSLVkBinding : InheritableAttr { + let Spellings = [CXX11<"vk", "binding">]; + let Subjects = SubjectList<[HLSLBufferObj, ExternalGlobalVar], ErrorDiag>;

[clang] [HLSL][SPIRV] Add vk::binding attribute (PR #150957)

2025-07-30 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts commented: LGTM, question around the default value. Seems like sema makes the default value be 0 as expected, so maybe the second template arg is not in fact the default value? https://github.com/llvm/llvm-project/pull/150957 _

[clang] [HLSL][SPIRV] Add vk::binding attribute (PR #150957)

2025-07-30 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts edited https://github.com/llvm/llvm-project/pull/150957 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL][SPIR-V] Add support for HLSL semantics (PR #149363)

2025-07-17 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts created https://github.com/llvm/llvm-project/pull/149363 WIP PR for the WG-HLSL semantic proposal TODO: validate DXIL packing and SPIR-V location assignment. From 8eb96a452cacee0e2284b6466351758db2bf3a80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20Gau=C3=ABr?=

[clang] [llvm] [SPIRV] Add more id and range builtIns (PR #143909)

2025-07-02 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts approved this pull request. https://github.com/llvm/llvm-project/pull/143909 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL][SPIRV] Add option to add all KHR extensions (PR #145536)

2025-06-26 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts approved this pull request. https://github.com/llvm/llvm-project/pull/145536 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL][SPIRV] Handle `uint` type for spec constant (PR #145577)

2025-06-26 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts approved this pull request. https://github.com/llvm/llvm-project/pull/145577 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL] Add option for VK layouts (PR #145327)

2025-06-24 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts approved this pull request. https://github.com/llvm/llvm-project/pull/145327 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [SPIRV] Add more id and range builtIns (PR #143909)

2025-06-24 Thread Nathan Gauër via cfe-commits
Keenuts wrote: > For the HLSL FE, there are already a few ids represented using intrinsics > (unfortunately they use the DXIL naming rather than the SPIR-V but that's > another point). I extended on that, were there reasons to not pursue this ? The main reason was simplicity: we had many thing

[clang] [llvm] [SPIRV] Add more id and range builtIns (PR #143909)

2025-06-24 Thread Nathan Gauër via cfe-commits
Keenuts wrote: > The advantage of intrinsics is they can be understood better by passes, it > also creates an easier way for passes to introduce them (and less error > prone). It's kinda pedantic TBH and I don't have strong opinions about them > (it just feels cleaner to me). For the frontend

[clang] [HLSL] Don't use CreateRuntimeFunction for intrinsics (PR #145334)

2025-06-23 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts approved this pull request. https://github.com/llvm/llvm-project/pull/145334 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL][SPIRV] Allow large z value in numthreads (PR #144934)

2025-06-23 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts approved this pull request. https://github.com/llvm/llvm-project/pull/144934 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL][SPIRV] Allow large z value in numthreads (PR #144934)

2025-06-23 Thread Nathan Gauër via cfe-commits
@@ -1033,12 +1033,15 @@ void SemaHLSL::handleRootSignatureAttr(Decl *D, const ParsedAttr &AL) { void SemaHLSL::handleNumThreadsAttr(Decl *D, const ParsedAttr &AL) { llvm::VersionTuple SMVersion = getASTContext().getTargetInfo().getTriple().getOSVersion(); + bool IsDXI

[clang] [llvm] [HLSL][SPRIV] Handle signed RWBuffer correctly (PR #144774)

2025-06-20 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts approved this pull request. https://github.com/llvm/llvm-project/pull/144774 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL][SPIRV] Allow large z value in numthreads (PR #144934)

2025-06-20 Thread Nathan Gauër via cfe-commits
@@ -1033,12 +1033,15 @@ void SemaHLSL::handleRootSignatureAttr(Decl *D, const ParsedAttr &AL) { void SemaHLSL::handleNumThreadsAttr(Decl *D, const ParsedAttr &AL) { llvm::VersionTuple SMVersion = getASTContext().getTargetInfo().getTriple().getOSVersion(); + bool IsDXI

[clang] [llvm] [HLSL][SPRIV] Handle signed RWBuffer correctly (PR #144774)

2025-06-20 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts approved this pull request. https://github.com/llvm/llvm-project/pull/144774 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [HLSL][SPRIV] Handle signed RWBuffer correctly (PR #144774)

2025-06-19 Thread Nathan Gauër via cfe-commits
@@ -346,8 +346,9 @@ bool sampledTypeIsSignedInteger(const llvm::Type *HandleType) { if (TET->getTargetExtName() == "spirv.Image") { return false; } - return TET->getTypeParameter(0)->isIntegerTy(); -} + assert(TET->getTargetExtName() == "spirv.SignedImage") { +re

[clang] [llvm] [HLSL][SPRIV] Handle signed RWBuffer correctly (PR #144774)

2025-06-19 Thread Nathan Gauër via cfe-commits
Keenuts wrote: This is not supposed to be merged no? https://github.com/llvm/llvm-project/pull/144774 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [HLSL][SPRIV] Handle signed RWBuffer correctly (PR #144774)

2025-06-19 Thread Nathan Gauër via cfe-commits
@@ -341,6 +341,13 @@ class SPIRVInstructionSelector : public InstructionSelector { GIntrinsic &HandleDef, MachineInstr &Pos) const; }; +bool sampledTypeIsSignedInteger(const llvm::Type *HandleType) { + const TargetExtType *TET = cast(HandleTy

[clang] spec constant (PR #144902)

2025-06-19 Thread Nathan Gauër via cfe-commits
Keenuts wrote: You might want to change the PR title to add the tags etc https://github.com/llvm/llvm-project/pull/144902 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] spec constant (PR #144902)

2025-06-19 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts approved this pull request. https://github.com/llvm/llvm-project/pull/144902 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [HLSL][SPIR-V] Fix LinkageAttribute emission for BuiltIn (PR #144701)

2025-06-18 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts closed https://github.com/llvm/llvm-project/pull/144701 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [HLSL] Use hidden visibility for external linkage. (PR #140292)

2025-06-16 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts approved this pull request. https://github.com/llvm/llvm-project/pull/140292 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [HLSL] Use hidden visibility for external linkage. (PR #140292)

2025-06-16 Thread Nathan Gauër via cfe-commits
@@ -1661,6 +1661,11 @@ void CodeGenModule::setGlobalVisibility(llvm::GlobalValue *GV, return; } + if (Context.getLangOpts().HLSL && !D->isInExportDeclContext()) { +GV->setVisibility(llvm::GlobalValue::HiddenVisibility); Keenuts wrote: GV at line 3

[clang] [HLSL][SPIRV] Add vk::constant_id attribute. (PR #143544)

2025-06-16 Thread Nathan Gauër via cfe-commits
https://github.com/Keenuts approved this pull request. https://github.com/llvm/llvm-project/pull/143544 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL][SPIRV] Add vk::constant_id attribute. (PR #143544)

2025-06-16 Thread Nathan Gauër via cfe-commits
@@ -12919,6 +12919,18 @@ def err_spirv_enum_not_int : Error< def err_spirv_enum_not_valid : Error< "invalid value for %select{storage class}0 argument">; +def err_specialization_const_lit_init +: Error<"variable with 'vk::constant_id' attribute cannot have an " +

[clang] [llvm] [SPIRV] Add more id and range builtIns (PR #143909)

2025-06-12 Thread Nathan Gauër via cfe-commits
Keenuts wrote: Hi, question, why did you prefer passing an new intrinsic to the SPIR-V backend vs loading a global variable with the BuiltIn decoration? For example, when building `SV_Position` semantic in HLSL, we emit a global variable in the FE in the `Input` SC, along with the correct `spi

  1   2   3   4   >