[llvm-branch-commits] [llvm] [DirectX] Adding support for static samples is yaml2obj/obj2yaml (PR #139963)

2025-05-29 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner edited https://github.com/llvm/llvm-project/pull/139963 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [llvm] [DirectX] Adding support for static samples is yaml2obj/obj2yaml (PR #139963)

2025-05-29 Thread Justin Bogner via llvm-branch-commits
@@ -1157,3 +1157,49 @@ TEST(RootSignature, ParseDescriptorTable) { ASSERT_EQ(Range.OffsetInDescriptorsFromTableStart, -1); } } + +TEST(RootSignature, ParseStaticSamplers) { + { +uint8_t Buffer[] = { +0x44, 0x58, 0x42, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

[llvm-branch-commits] [llvm] [DirectX] Adding support for static samples is yaml2obj/obj2yaml (PR #139963)

2025-05-29 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. LGTM other than one comment about consistently using the `ASSERT_*` vs `EXPECT_*` macros in the tests. https://github.com/llvm/llvm-project/pull/139963 ___ llvm-branch-commits mailing list llvm-bra

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing of filter enum for StaticSampler (PR #140294)

2025-05-29 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/140294 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [llvm] [HLSL][RootSignature] Implement `ResourceRange` as an `IntervalMap` (PR #140957)

2025-05-29 Thread Justin Bogner via llvm-branch-commits
@@ -198,6 +199,61 @@ class MetadataBuilder { SmallVector GeneratedMetadata; }; +// RangeInfo holds the information to correctly construct a ResourceRange +// and retains this information to be used for displaying a better diagnostic +struct RangeInfo { + const static uint32

[llvm-branch-commits] [llvm] [HLSL][RootSignature] Implement `ResourceRange` as an `IntervalMap` (PR #140957)

2025-05-29 Thread Justin Bogner via llvm-branch-commits
@@ -198,6 +199,61 @@ class MetadataBuilder { SmallVector GeneratedMetadata; }; +// RangeInfo holds the information to correctly construct a ResourceRange +// and retains this information to be used for displaying a better diagnostic +struct RangeInfo { + const static uint32

[llvm-branch-commits] [llvm] [HLSL][RootSignature] Implement `ResourceRange` as an `IntervalMap` (PR #140957)

2025-05-29 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/140957 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [llvm] [DirectX] Detect resources with identical overlapping binding (PR #140645)

2025-05-27 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/140645 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [llvm] [DirectX] Improve error message when a binding cannot be found for a resource (PR #140642)

2025-05-27 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/140642 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add space, visibility enums to StaticSampler (PR #140306)

2025-05-27 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/140306 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing of remaining enums to StaticSampler (PR #140305)

2025-05-27 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/140305 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing of filter enum for StaticSampler (PR #140294)

2025-05-27 Thread Justin Bogner via llvm-branch-commits
@@ -104,10 +107,11 @@ KEYWORD(numDescriptors) KEYWORD(offset) // StaticSampler Keywords: -KEYWORD(mipLODBias) +KEYWORD(filter) KEYWORD(addressU) KEYWORD(addressV) KEYWORD(addressW) +KEYWORD(mipLODBias) KEYWORD(maxAnisotropy) KEYWORD(minLOD) KEYWORD(maxLOD) --

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing of filter enum for StaticSampler (PR #140294)

2025-05-27 Thread Justin Bogner via llvm-branch-commits
@@ -76,6 +76,45 @@ enum class ShaderVisibility { Mesh = 7, }; +enum class Filter { + MinMagMipPoint = 0, + MinMagPointMipLinear = 0x1, + MinPointMagLinearMipPoint = 0x4, + MinPointMagMipLinear = 0x5, + MinLinearMagMipPoint = 0x10, + MinLinearMagPointMipLinear = 0x11, +

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing of floats for StaticSampler (PR #140181)

2025-05-27 Thread Justin Bogner via llvm-branch-commits
@@ -6,6 +6,8 @@ // //===--===// +#include bogner wrote: Is this used? https://github.com/llvm/llvm-project/pull/140181 ___ llvm-branch-commits m

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing of floats for StaticSampler (PR #140181)

2025-05-27 Thread Justin Bogner via llvm-branch-commits
@@ -821,22 +873,115 @@ std::optional RootSignatureParser::handleUIntLiteral() { PP.getSourceManager(), PP.getLangOpts(), PP.getTargetInfo(), PP.getDiagnostics()); if (Literal.hadError) -return tr

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing of floats for StaticSampler (PR #140181)

2025-05-27 Thread Justin Bogner via llvm-branch-commits
@@ -821,22 +873,115 @@ std::optional RootSignatureParser::handleUIntLiteral() { PP.getSourceManager(), PP.getLangOpts(), PP.getTargetInfo(), PP.getDiagnostics()); if (Literal.hadError) -return tr

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing of floats for StaticSampler (PR #140181)

2025-05-27 Thread Justin Bogner via llvm-branch-commits
@@ -711,6 +734,35 @@ std::optional RootSignatureParser::parseRegister() { return Reg; } +std::optional RootSignatureParser::parseFloatParam() { + assert(CurToken.TokKind == TokenKind::pu_equal && + "Expects to only be invoked starting at given keyword"); + // Cons

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing of floats for StaticSampler (PR #140181)

2025-05-27 Thread Justin Bogner via llvm-branch-commits
@@ -821,22 +873,115 @@ std::optional RootSignatureParser::handleUIntLiteral() { PP.getSourceManager(), PP.getLangOpts(), PP.getTargetInfo(), PP.getDiagnostics()); if (Literal.hadError) -return tr

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing of floats for StaticSampler (PR #140181)

2025-05-27 Thread Justin Bogner via llvm-branch-commits
@@ -821,22 +873,115 @@ std::optional RootSignatureParser::handleUIntLiteral() { PP.getSourceManager(), PP.getLangOpts(), PP.getTargetInfo(), PP.getDiagnostics()); if (Literal.hadError) -return tr

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing of floats for StaticSampler (PR #140181)

2025-05-27 Thread Justin Bogner via llvm-branch-commits
@@ -821,22 +873,115 @@ std::optional RootSignatureParser::handleUIntLiteral() { PP.getSourceManager(), PP.getLangOpts(), PP.getTargetInfo(), PP.getDiagnostics()); if (Literal.hadError) -return tr

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing of floats for StaticSampler (PR #140181)

2025-05-27 Thread Justin Bogner via llvm-branch-commits
@@ -711,6 +734,35 @@ std::optional RootSignatureParser::parseRegister() { return Reg; } +std::optional RootSignatureParser::parseFloatParam() { + assert(CurToken.TokKind == TokenKind::pu_equal && + "Expects to only be invoked starting at given keyword"); + // Cons

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing of floats for StaticSampler (PR #140181)

2025-05-27 Thread Justin Bogner via llvm-branch-commits
@@ -821,22 +873,115 @@ std::optional RootSignatureParser::handleUIntLiteral() { PP.getSourceManager(), PP.getLangOpts(), PP.getTargetInfo(), PP.getDiagnostics()); if (Literal.hadError) -return tr

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing infastructure for StaticSampler (PR #140180)

2025-05-23 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/140180 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [llvm] [NFC] Updating RTS0 namespace to contain all elements related to it's representation (PR #141173)

2025-05-23 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/141173 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [HLSL] Implicit resource binding for cbuffers (PR #139022)

2025-05-11 Thread Justin Bogner via llvm-branch-commits
@@ -539,19 +537,27 @@ static void initializeBuffer(CodeGenModule &CGM, llvm::GlobalVariable *GV, } static void initializeBufferFromBinding(CodeGenModule &CGM, -llvm::GlobalVariable *GV, unsigned Slot, -

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Define and integrate rootsig clang attr and decl (PR #137690)

2025-05-09 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/137690 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [CAS] Add llvm-cas tools to inspect on-disk LLVMCAS (PR #114104)

2025-05-09 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/114104 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [llvm] [DirectX] Implement DXILResourceImplicitBinding pass (PR #138043)

2025-05-09 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/138043 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add optional parameters for RootConstants (PR #138007)

2025-05-08 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/138007 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing for RootFlags (PR #138055)

2025-05-08 Thread Justin Bogner via llvm-branch-commits
@@ -1842,5 +1842,6 @@ def err_hlsl_unexpected_end_of_params def err_hlsl_rootsig_repeat_param : Error<"specified the same parameter '%0' multiple times">; def err_hlsl_rootsig_missing_param : Error<"did not specify mandatory parameter '%0'">; def err_hlsl_number_literal_overf

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing for RootFlags (PR #138055)

2025-05-08 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/138055 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add mandatory parameters for RootConstants (PR #138002)

2025-05-08 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/138002 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Define and integrate rootsig clang attr and decl (PR #137690)

2025-05-08 Thread Justin Bogner via llvm-branch-commits
@@ -149,6 +149,29 @@ void DescriptorTableClause::dump(raw_ostream &OS) const { OS << ")"; } +// Helper struct so that we can use the overloaded notation of std::visit +template struct OverloadMethods : Ts... { + using Ts::operator()...; +}; + +template OverloadMethods(Ts.

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Define and integrate rootsig clang attr and decl (PR #137690)

2025-05-08 Thread Justin Bogner via llvm-branch-commits
@@ -149,6 +149,29 @@ void DescriptorTableClause::dump(raw_ostream &OS) const { OS << ")"; } +// Helper struct so that we can use the overloaded notation of std::visit +template struct OverloadMethods : Ts... { + using Ts::operator()...; +}; + +template OverloadMethods(Ts.

[llvm-branch-commits] [clang] [HLSL] Overloads for `lerp` with a scalar weight (PR #137877)

2025-04-29 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner updated https://github.com/llvm/llvm-project/pull/137877 >From 20a1723d5f4f9132e44ba7d76e11f94ca367e269 Mon Sep 17 00:00:00 2001 From: Justin Bogner Date: Tue, 29 Apr 2025 11:59:37 -0700 Subject: [PATCH 1/2] [HLSL] Overloads for `lerp` with a scalar weight This adds o

[llvm-branch-commits] [clang] [HLSL] Overloads for `lerp` with a scalar weight (PR #137877)

2025-04-29 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner updated https://github.com/llvm/llvm-project/pull/137877 >From 20a1723d5f4f9132e44ba7d76e11f94ca367e269 Mon Sep 17 00:00:00 2001 From: Justin Bogner Date: Tue, 29 Apr 2025 11:59:37 -0700 Subject: [PATCH] [HLSL] Overloads for `lerp` with a scalar weight This adds overl

[llvm-branch-commits] [clang] [HLSL] Overloads for `lerp` with a scalar weight (PR #137877)

2025-04-29 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner edited https://github.com/llvm/llvm-project/pull/137877 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing of remaining Descriptor Table params (PR #137038)

2025-04-25 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/137038 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [llvm] [HLSL] Allow resource annotations to specify only register space (PR #135287)

2025-04-23 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. LGTM! https://github.com/llvm/llvm-project/pull/135287 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Add parsing of ShaderVisibility to DescriptorTable (PR #136751)

2025-04-23 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/136751 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [llvm] [HLSL] Remove old resource annotations (PR #130338)

2025-03-11 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/130338 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [llvm] [HLSL] Remove HLSLResource attribute (PR #130342)

2025-03-10 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/130342 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [llvm] [DirectX] Remove DXILResourceMDAnalysis (PR #130323)

2025-03-10 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/130323 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [llvm] [DirectX] Remove DXILResourceMDAnalysis (PR #130323)

2025-03-10 Thread Justin Bogner via llvm-branch-commits
@@ -99,18 +96,6 @@ static NamedMDNode *emitResourceMetadata(Module &M, DXILBindingMap &DBM, Metadata *SmpMD = Smps.empty() ? nullptr : MDNode::get(Context, Smps); bool HasResources = !DBM.empty(); - if (MDResources.hasUAVs()) { -assert(!UAVMD && "Old and new UAV repr

[llvm-branch-commits] [llvm] [HLSL] Refactor Offset calculation while writing Root Signatures. (PR #128577)

2025-02-25 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/128577 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [llvm] [DirectX] Support the CBufferLoadLegacy operation (PR #128699)

2025-02-25 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner updated https://github.com/llvm/llvm-project/pull/128699 >From be9554eabde52e6feb37ad91935ee73aacdf00d6 Mon Sep 17 00:00:00 2001 From: Justin Bogner Date: Sat, 22 Feb 2025 12:40:46 -0800 Subject: [PATCH 1/2] [DirectX] Support the CBufferLoadLegacy operation Fixes #112

[llvm-branch-commits] [llvm] [DirectX] Support the CBufferLoadLegacy operation (PR #128699)

2025-02-25 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner created https://github.com/llvm/llvm-project/pull/128699 Fixes #112992 >From be9554eabde52e6feb37ad91935ee73aacdf00d6 Mon Sep 17 00:00:00 2001 From: Justin Bogner Date: Sat, 22 Feb 2025 12:40:46 -0800 Subject: [PATCH] [DirectX] Support the CBufferLoadLegacy operation

[llvm-branch-commits] [llvm] [DirectX] Fix printing of DXIL cbuffer info (PR #128698)

2025-02-25 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner created https://github.com/llvm/llvm-project/pull/128698 Make sure we're able to print cbuffer comments in a way that's compatible with DXC. Fixes #128562 >From 155483b100e7e60d62b966dfd56747a2c64a94dd Mon Sep 17 00:00:00 2001 From: Justin Bogner Date: Sat, 22 Feb 2

[llvm-branch-commits] [llvm] [HLSL] Refactor Offset calculation while writing Root Signatures. (PR #128577)

2025-02-24 Thread Justin Bogner via llvm-branch-commits
@@ -7,19 +7,42 @@ //===--===// #include "llvm/BinaryFormat/DXContainer.h" -#include -#include +#include "llvm/Support/BinaryStreamWriter.h" +#include "llvm/Support/raw_ostream.h" +#include +#include -

[llvm-branch-commits] [clang] [HLSL] Implement default constant buffer `$Globals` (PR #125807)

2025-02-20 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner approved this pull request. https://github.com/llvm/llvm-project/pull/125807 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Implement Parsing of Descriptor Tables (PR #122982)

2025-02-13 Thread Justin Bogner via llvm-branch-commits
@@ -162,5 +219,371 @@ std::optional RootSignatureLexer::PeekNextToken() { return Result; } +// Parser Definitions + +RootSignatureParser::RootSignatureParser(SmallVector &Elements, + RootSignatureLexer &Lexer, +

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Implement Parsing of Descriptor Tables (PR #122982)

2025-02-13 Thread Justin Bogner via llvm-branch-commits
@@ -93,6 +96,108 @@ class RootSignatureLexer { } }; +class RootSignatureParser { +public: + RootSignatureParser(SmallVector &Elements, + RootSignatureLexer &Lexer, DiagnosticsEngine &Diags); + + /// Iterates over the provided tokens and constructs the

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Implement Parsing of Descriptor Tables (PR #122982)

2025-02-13 Thread Justin Bogner via llvm-branch-commits
@@ -162,5 +219,371 @@ std::optional RootSignatureLexer::PeekNextToken() { return Result; } +// Parser Definitions + +RootSignatureParser::RootSignatureParser(SmallVector &Elements, + RootSignatureLexer &Lexer, +

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Implement Parsing of Descriptor Tables (PR #122982)

2025-02-13 Thread Justin Bogner via llvm-branch-commits
@@ -162,5 +219,371 @@ std::optional RootSignatureLexer::PeekNextToken() { return Result; } +// Parser Definitions + +RootSignatureParser::RootSignatureParser(SmallVector &Elements, + RootSignatureLexer &Lexer, +

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Implement Parsing of Descriptor Tables (PR #122982)

2025-02-13 Thread Justin Bogner via llvm-branch-commits
@@ -93,6 +96,108 @@ class RootSignatureLexer { } }; +class RootSignatureParser { +public: + RootSignatureParser(SmallVector &Elements, + RootSignatureLexer &Lexer, DiagnosticsEngine &Diags); + + /// Iterates over the provided tokens and constructs the

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Implement Parsing of Descriptor Tables (PR #122982)

2025-02-13 Thread Justin Bogner via llvm-branch-commits
@@ -306,4 +307,254 @@ TEST_F(ParseHLSLRootSignatureTest, InvalidLexRegNumberTest) { ASSERT_FALSE(Consumer->IsSatisfied()); } +// Valid Parser Tests + +TEST_F(ParseHLSLRootSignatureTest, ValidParseEmptyTest) { + const llvm::StringLiteral Source = R"cc()cc"; + + TrivialModu

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Implement Parsing of Descriptor Tables (PR #122982)

2025-02-13 Thread Justin Bogner via llvm-branch-commits
@@ -1,8 +1,65 @@ #include "clang/Parse/ParseHLSLRootSignature.h" +#include "llvm/Support/raw_ostream.h" + +using namespace llvm::hlsl::rootsig; + namespace clang { namespace hlsl { +// Helper definitions bogner wrote: This comment isn't very helpful. http

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Implement Parsing of Descriptor Tables (PR #122982)

2025-02-13 Thread Justin Bogner via llvm-branch-commits
@@ -93,6 +96,108 @@ class RootSignatureLexer { } }; +class RootSignatureParser { +public: + RootSignatureParser(SmallVector &Elements, + RootSignatureLexer &Lexer, DiagnosticsEngine &Diags); + + /// Iterates over the provided tokens and constructs the

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Implement Parsing of Descriptor Tables (PR #122982)

2025-02-13 Thread Justin Bogner via llvm-branch-commits
@@ -93,6 +96,108 @@ class RootSignatureLexer { } }; +class RootSignatureParser { +public: + RootSignatureParser(SmallVector &Elements, + RootSignatureLexer &Lexer, DiagnosticsEngine &Diags); + + /// Iterates over the provided tokens and constructs the

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Implement Parsing of Descriptor Tables (PR #122982)

2025-02-13 Thread Justin Bogner via llvm-branch-commits
@@ -93,6 +96,108 @@ class RootSignatureLexer { } }; +class RootSignatureParser { +public: + RootSignatureParser(SmallVector &Elements, + RootSignatureLexer &Lexer, DiagnosticsEngine &Diags); + + /// Iterates over the provided tokens and constructs the

[llvm-branch-commits] [clang] [HLSL] Constant buffers codegen (PR #124886)

2025-02-04 Thread Justin Bogner via llvm-branch-commits
@@ -5743,6 +5747,17 @@ HLSLBufferDecl *HLSLBufferDecl::CreateDeserialized(ASTContext &C, SourceLocation(), SourceLocation()); } +const CXXRecordDecl *HLSLBufferDecl::getLayoutStruct() const { + // Layout struct is the last decl in the HLSL

[llvm-branch-commits] [llvm] [DXIL] Add support for root signature flag element in DXContainer (PR #123147)

2025-02-03 Thread Justin Bogner via llvm-branch-commits
@@ -0,0 +1,157 @@ +//===- DXILRootSignature.cpp - DXIL Root Signature helper objects ===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Implement Parsing of Descriptor Tables (PR #122982)

2025-02-03 Thread Justin Bogner via llvm-branch-commits
@@ -15,16 +15,21 @@ #include "clang/AST/APValue.h" #include "clang/Basic/DiagnosticLex.h" +#include "clang/Basic/DiagnosticParse.h" #include "clang/Lex/LiteralSupport.h" #include "clang/Lex/Preprocessor.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringRef.h"

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Implement Parsing of Descriptor Tables (PR #122982)

2025-02-03 Thread Justin Bogner via llvm-branch-commits
@@ -148,6 +148,347 @@ bool RootSignatureLexer::LexToken(RootSignatureToken &Result) { return false; } +// Parser Definitions + +RootSignatureParser::RootSignatureParser( +SmallVector &Elements, +const SmallVector &Tokens) +: Elements(Elements) { + CurTok = Toke

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Implement Parsing of Descriptor Tables (PR #122982)

2025-02-03 Thread Justin Bogner via llvm-branch-commits
@@ -80,6 +85,99 @@ class RootSignatureLexer { } }; +class RootSignatureParser { +public: + RootSignatureParser(SmallVector &Elements, + const SmallVector &Tokens, + DiagnosticsEngine &Diags); + + // Iterates over the provided token

[llvm-branch-commits] [clang] [llvm] [HLSL][RootSignature] Implement Parsing of Descriptor Tables (PR #122982)

2025-02-03 Thread Justin Bogner via llvm-branch-commits
@@ -80,6 +85,99 @@ class RootSignatureLexer { } }; +class RootSignatureParser { +public: + RootSignatureParser(SmallVector &Elements, + const SmallVector &Tokens, + DiagnosticsEngine &Diags); + + // Iterates over the provided token

[llvm-branch-commits] [llvm] [DirectX] Handle dx.RawBuffer in DXILResourceAccess (PR #121725)

2025-01-05 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner created https://github.com/llvm/llvm-project/pull/121725 This adds handling for raw and structured buffers when lowering resource access via `llvm.dx.resource.getpointer`. Fixes #121714 >From 192d20b16e418b89a549e93406f782ac0a0fa093 Mon Sep 17 00:00:00 2001 From: Jus

[llvm-branch-commits] [llvm] [DirectX] Implement the resource.store.rawbuffer intrinsic (PR #121282)

2024-12-30 Thread Justin Bogner via llvm-branch-commits
bogner wrote: > ⚠️ undef deprecator found issues in your code. ⚠️ > > You can test this locally with the following command: > The following files introduce new uses of undef: > > * llvm/lib/Target/DirectX/DXILOpLowering.cpp > * llvm/test/CodeGen/DirectX/BufferStore-sm61.ll > * llvm/test/CodeGe

[llvm-branch-commits] [llvm] [DirectX] Implement the resource.store.rawbuffer intrinsic (PR #121282)

2024-12-28 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner created https://github.com/llvm/llvm-project/pull/121282 This introduces `@llvm.dx.resource.store.rawbuffer` and generalizes the buffer store docs under DirectX/DXILResources. Fixes #106188 >From c49bc4714589cf548a6382ea5a99f31626d3d6a2 Mon Sep 17 00:00:00 2001 From:

[llvm-branch-commits] [llvm] [DirectX] Implement the resource.load.rawbuffer intrinsic (PR #121012)

2024-12-28 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner updated https://github.com/llvm/llvm-project/pull/121012 >From 53bba63c6a55464ac1872dc60f39510eff426d64 Mon Sep 17 00:00:00 2001 From: Justin Bogner Date: Thu, 19 Dec 2024 16:33:48 -0700 Subject: [PATCH 1/2] [DirectX] Implement the resource.load.rawbuffer intrinsic Th

[llvm-branch-commits] [llvm] [DirectX] Implement the resource.load.rawbuffer intrinsic (PR #121012)

2024-12-28 Thread Justin Bogner via llvm-branch-commits
@@ -542,6 +542,48 @@ class OpLowerer { }); } + [[nodiscard]] bool lowerRawBufferLoad(Function &F) { +Triple TT(Triple(M.getTargetTriple())); +VersionTuple DXILVersion = TT.getDXILVersion(); +const DataLayout &DL = F.getDataLayout(); +IRBuilder<> &IRB = O

[llvm-branch-commits] [llvm] [DirectX] Implement the resource.load.rawbuffer intrinsic (PR #121012)

2024-12-23 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner created https://github.com/llvm/llvm-project/pull/121012 This introduces `@llvm.dx.resource.load.rawbuffer` and generalizes the buffer load docs under DirectX/DXILResources. This resolves the "load" parts of #106188 >From 53bba63c6a55464ac1872dc60f39510eff426d64 Mon

[llvm-branch-commits] [llvm] [DirectX] TypedUAVLoadAdditionalFormats shader flag (PR #120280)

2024-12-18 Thread Justin Bogner via llvm-branch-commits
bogner wrote: oops, forgot to update the destination branch - identical PR here: #120477 https://github.com/llvm/llvm-project/pull/120280 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/lis

[llvm-branch-commits] [llvm] [DirectX] TypedUAVLoadAdditionalFormats shader flag (PR #120280)

2024-12-18 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner closed https://github.com/llvm/llvm-project/pull/120280 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [llvm] [DirectX] Split resource info into type and binding info. NFC (PR #119773)

2024-12-16 Thread Justin Bogner via llvm-branch-commits
@@ -303,44 +289,157 @@ class ResourceInfo { dxil::SamplerFeedbackType getFeedbackType() const; uint32_t getMultiSampleCount() const; - StringRef getName() const { -// TODO: Get the name from the symbol once we include one here. -return ""; - } dxil::ResourceCl

[llvm-branch-commits] [llvm] [DirectX] Split resource info into type and binding info. NFC (PR #119773)

2024-12-16 Thread Justin Bogner via llvm-branch-commits
@@ -303,44 +289,157 @@ class ResourceInfo { dxil::SamplerFeedbackType getFeedbackType() const; uint32_t getMultiSampleCount() const; - StringRef getName() const { -// TODO: Get the name from the symbol once we include one here. -return ""; - } dxil::ResourceCl

[llvm-branch-commits] [llvm] [DirectX] Create symbols for resource handles (PR #119775)

2024-12-16 Thread Justin Bogner via llvm-branch-commits
bogner wrote: > If there already is a global variable for the resource in the module, > shouldn't we be using that instead of creating a new symbol? The only global variables in the module before this point are the globals for the resource handles. These are (1) the wrong type (they're the han

[llvm-branch-commits] [llvm] [DirectX] Create symbols for resource handles (PR #119775)

2024-12-16 Thread Justin Bogner via llvm-branch-commits
@@ -0,0 +1,48 @@ +; RUN: opt -S -passes=dxil-translate-metadata %s | FileCheck %s + +target triple = "dxil-pc-shadermodel6.6-compute" + +%struct.S = type { <4 x float>, <4 x i32> } + +define void @test() { + ; Buffer + %float4 = call target("dx.TypedBuffer", <4 x float>, 0, 0, 0

[llvm-branch-commits] [llvm] [DirectX] Introduce the DXILResourceAccess pass (PR #116726)

2024-12-12 Thread Justin Bogner via llvm-branch-commits
@@ -10,10 +10,11 @@ ; CHECK-NEXT: DXIL Intrinsic Expansion ; CHECK-NEXT: DXIL Data Scalarization ; CHECK-NEXT: DXIL Array Flattener +; CHECK-NEXT: DXIL Resource analysis bogner wrote: This is no longer relevant after splitting the analysis passes http

[llvm-branch-commits] [llvm] [DirectX] Introduce the DXILResourceAccess pass (PR #116726)

2024-12-12 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner edited https://github.com/llvm/llvm-project/pull/116726 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [clang] [HLSL] Add RWBuffer::Load(Index) (PR #117018)

2024-11-22 Thread Justin Bogner via llvm-branch-commits
@@ -189,12 +189,28 @@ struct BuiltinTypeDeclBuilder { BuiltinTypeDeclBuilder &addArraySubscriptOperators(Sema &S) { if (Record->isCompleteDefinition()) return *this; -addArraySubscriptOperator(S, true); -addArraySubscriptOperator(S, false); +ASTContext &

[llvm-branch-commits] [clang] [HLSL] Add RWBuffer::Load(Index) (PR #117018)

2024-11-20 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner updated https://github.com/llvm/llvm-project/pull/117018 >From c7ba48c605a8181fb8c73178ea82b231b7e24e28 Mon Sep 17 00:00:00 2001 From: Justin Bogner Date: Tue, 19 Nov 2024 14:32:44 -0800 Subject: [PATCH 1/2] [HLSL] Add RWBuffer::Load(Index) This method is the same as

[llvm-branch-commits] [clang] [HLSL] Add RWBuffer::Load(Index) (PR #117018)

2024-11-20 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner created https://github.com/llvm/llvm-project/pull/117018 This method is the same as `operator[]`, except that it returns a value instead of a reference. >From 8c9d382ae6d3c6e2dc8a0d738a97f3b3d14d5413 Mon Sep 17 00:00:00 2001 From: Justin Bogner Date: Tue, 19 Nov 2024

[llvm-branch-commits] [llvm] [DirectX] Lower `@llvm.dx.typedBufferStore` to DXIL ops (PR #104253)

2024-09-09 Thread Justin Bogner via llvm-branch-commits
@@ -94,6 +95,7 @@ class OpLowerer { DiagnosticInfoUnsupported Diag(*CI->getFunction(), Message, CI->getDebugLoc()); M.getContext().diagnose(Diag); +HasErrors = true; bogner wrote: I pushed the `boo

[llvm-branch-commits] [llvm] [DirectX] Lower `@llvm.dx.typedBufferStore` to DXIL ops (PR #104253)

2024-09-09 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner updated https://github.com/llvm/llvm-project/pull/104253 >From d49a863313c30d3e75205dbffddc8f81980ed25b Mon Sep 17 00:00:00 2001 From: Justin Bogner Date: Mon, 9 Sep 2024 17:55:15 -0700 Subject: [PATCH] Propagate HasErrors through return values Created using spr 1.3.5

[llvm-branch-commits] [DirectX] Lower `@llvm.dx.typedBufferStore` to DXIL ops (PR #104253)

2024-09-09 Thread Justin Bogner via llvm-branch-commits
@@ -289,6 +289,43 @@ class OpLowerer { }); } + void lowerTypedBufferStore(Function &F) { +IRBuilder<> &IRB = OpBuilder.getIRB(); +Type *Int8Ty = IRB.getInt8Ty(); +Type *Int32Ty = IRB.getInt32Ty(); + +replaceFunction(F, [&](CallInst *CI) -> Error { --

[llvm-branch-commits] [DirectX] Lower `@llvm.dx.typedBufferStore` to DXIL ops (PR #104253)

2024-09-09 Thread Justin Bogner via llvm-branch-commits
@@ -94,6 +95,7 @@ class OpLowerer { DiagnosticInfoUnsupported Diag(*CI->getFunction(), Message, CI->getDebugLoc()); M.getContext().diagnose(Diag); +HasErrors = true; bogner wrote: Even if we did pa

[llvm-branch-commits] [DirectX] Lower `@llvm.dx.typedBufferStore` to DXIL ops (PR #104253)

2024-09-09 Thread Justin Bogner via llvm-branch-commits
@@ -289,6 +289,43 @@ class OpLowerer { }); } + void lowerTypedBufferStore(Function &F) { +IRBuilder<> &IRB = OpBuilder.getIRB(); +Type *Int8Ty = IRB.getInt8Ty(); +Type *Int32Ty = IRB.getInt32Ty(); + +replaceFunction(F, [&](CallInst *CI) -> Error { --

[llvm-branch-commits] [DirectX] Lower `@llvm.dx.typedBufferStore` to DXIL ops (PR #104253)

2024-09-09 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner updated https://github.com/llvm/llvm-project/pull/104253 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [DirectX] Lower `@llvm.dx.typedBufferStore` to DXIL ops (PR #104253)

2024-09-09 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner updated https://github.com/llvm/llvm-project/pull/104253 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [DirectX] Lower `@llvm.dx.typedBufferStore` to DXIL ops (PR #104253)

2024-09-09 Thread Justin Bogner via llvm-branch-commits
@@ -388,10 +432,13 @@ class OpLowerer { case Intrinsic::dx_typedBufferLoad: lowerTypedBufferLoad(F); break; + case Intrinsic::dx_typedBufferStore: +lowerTypedBufferStore(F); +break; } Updated = true; } -if (Updat

[llvm-branch-commits] [DirectX] Lower `@llvm.dx.typedBufferStore` to DXIL ops (PR #104253)

2024-09-09 Thread Justin Bogner via llvm-branch-commits
bogner wrote: Please take another look - specifically I'd like some review on the doc changes to make sure they're clear. https://github.com/llvm/llvm-project/pull/104253 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://

[llvm-branch-commits] [DirectX] Lower `@llvm.dx.typedBufferStore` to DXIL ops (PR #104253)

2024-09-09 Thread Justin Bogner via llvm-branch-commits
@@ -289,6 +289,43 @@ class OpLowerer { }); } + void lowerTypedBufferStore(Function &F) { +IRBuilder<> &IRB = OpBuilder.getIRB(); +Type *Int8Ty = IRB.getInt8Ty(); +Type *Int32Ty = IRB.getInt32Ty(); + +replaceFunction(F, [&](CallInst *CI) -> Error { +

[llvm-branch-commits] [llvm] [DirectX] Lower `@llvm.dx.typedBufferLoad` to DXIL ops (PR #104252)

2024-09-09 Thread Justin Bogner via llvm-branch-commits
@@ -259,6 +259,114 @@ class OpLowerer { lowerToBindAndAnnotateHandle(F); } + /// Replace uses of \c V with the values in the `dx.ResRet` of \c Op. Since we + /// expect to be post-scalarization, make an effort to avoid vectors. + Error replaceResRetUses(CallInst *I

[llvm-branch-commits] [llvm] [DirectX] Lower `@llvm.dx.typedBufferLoad` to DXIL ops (PR #104252)

2024-09-09 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner updated https://github.com/llvm/llvm-project/pull/104252 >From 2f317012985068f7130cdf4976d8821924d404c3 Mon Sep 17 00:00:00 2001 From: Justin Bogner Date: Mon, 9 Sep 2024 12:16:36 -0700 Subject: [PATCH 1/2] Improve comments, move code for clarity Created using spr 1.3

[llvm-branch-commits] [llvm] [DirectX] Lower `@llvm.dx.typedBufferLoad` to DXIL ops (PR #104252)

2024-09-09 Thread Justin Bogner via llvm-branch-commits
@@ -259,6 +259,114 @@ class OpLowerer { lowerToBindAndAnnotateHandle(F); } + /// Replace uses of \c V with the values in the `dx.ResRet` of \c Op. Since we bogner wrote: Nice catch, should be "Intrin", the name of the first parameter. Updated. http

[llvm-branch-commits] [llvm] [DirectX] Lower `@llvm.dx.typedBufferLoad` to DXIL ops (PR #104252)

2024-09-09 Thread Justin Bogner via llvm-branch-commits
@@ -267,45 +267,38 @@ Examples: @llvm.dx.handle.fromHeap.tdx.RawBuffer_v4f32_1_0( i32 2, i1 false) -Buffer Loads and Stores - -*relevant types: Buffers* - -We need to treat buffer loads and stores from "dx.TypedBuffer"

[llvm-branch-commits] [llvm] [DirectX] Lower `@llvm.dx.typedBufferLoad` to DXIL ops (PR #104252)

2024-09-09 Thread Justin Bogner via llvm-branch-commits
https://github.com/bogner updated https://github.com/llvm/llvm-project/pull/104252 >From 2f317012985068f7130cdf4976d8821924d404c3 Mon Sep 17 00:00:00 2001 From: Justin Bogner Date: Mon, 9 Sep 2024 12:16:36 -0700 Subject: [PATCH] Improve comments, move code for clarity Created using spr 1.3.5-b

[llvm-branch-commits] [DirectX] Lower `@llvm.dx.typedBufferLoad` to DXIL ops (PR #104252)

2024-09-09 Thread Justin Bogner via llvm-branch-commits
@@ -450,6 +462,10 @@ CallInst *DXILOpBuilder::createOp(dxil::OpCode OpCode, ArrayRef Args, return *Result; } +StructType *DXILOpBuilder::getResRetType(Type *ElementTy) { + return ::getResRetType(ElementTy); bogner wrote: This pattern isn't great, and I ex

[llvm-branch-commits] [DirectX] Lower `@llvm.dx.typedBufferLoad` to DXIL ops (PR #104252)

2024-09-09 Thread Justin Bogner via llvm-branch-commits
@@ -30,6 +30,9 @@ def int_dx_handle_fromBinding [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i1_ty], [IntrNoMem]>; +def int_dx_typedBufferLoad bogner wrote: No, I plan to add that in a follow up. https://github.com/llvm/llvm-

  1   2   3   >