@@ -860,26 +929,35 @@ std::optional
CGHLSLRuntime::emitResourceArraySubscriptExpr(
TmpVar, Qualifiers(), AggValueSlot::IsDestructed_t(true),
AggValueSlot::DoesNotNeedGCBarriers, AggValueSlot::IsAliased_t(false),
AggValueSlot::DoesNotOverlap);
-
- Address Thi
@@ -190,6 +192,71 @@ static void createResourceCtorArgs(CodeGenModule &CGM,
CXXConstructorDecl *CD,
Args.add(RValue::get(NameStr), AST.getPointerType(AST.CharTy.withConst()));
}
+// Initializes local resource array variable. For multi-dimensional arrays it
+// calls itself
@@ -860,26 +929,35 @@ std::optional
CGHLSLRuntime::emitResourceArraySubscriptExpr(
TmpVar, Qualifiers(), AggValueSlot::IsDestructed_t(true),
AggValueSlot::DoesNotNeedGCBarriers, AggValueSlot::IsAliased_t(false),
AggValueSlot::DoesNotOverlap);
-
- Address Thi
@@ -860,26 +929,35 @@ std::optional
CGHLSLRuntime::emitResourceArraySubscriptExpr(
TmpVar, Qualifiers(), AggValueSlot::IsDestructed_t(true),
AggValueSlot::DoesNotNeedGCBarriers, AggValueSlot::IsAliased_t(false),
AggValueSlot::DoesNotOverlap);
-
- Address Thi
https://github.com/llvm-beanz edited
https://github.com/llvm/llvm-project/pull/154248
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/llvm-beanz approved this pull request.
I've put some really nitpicky comments with suggestions about code comments to
align with LLVM coding standards
(https://llvm.org/docs/CodingStandards.html#commenting), but otherwise this PR
looks good.
https://github.com/llvm/llvm-pro
@@ -84,6 +85,111 @@ void addRootSignature(llvm::dxbc::RootSignatureVersion
RootSigVer,
RootSignatureValMD->addOperand(MDVals);
}
+// Find array variable declaration from nested array subscript AST nodes
+static const ValueDecl *getArrayDecl(const ArraySubscriptExpr *ASE) {
https://github.com/llvm-beanz approved this pull request.
https://github.com/llvm/llvm-project/pull/154639
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -295,6 +295,32 @@ void tools::hlsl::MetalConverter::ConstructJob(
Exec, CmdArgs, Inputs, Input));
}
+void tools::LLVMObjcopy::ConstructJob(Compilation &C, const JobAction &JA,
+ const InputInfo &O
@@ -9436,6 +9436,18 @@ def dxc_rootsig_ver :
Alias,
Group,
Visibility<[DXCOption]>;
+def fdx_rootsignature_define :
+ Joined<["-"], "fdx-rootsignature-define=">,
+ Group,
+ Visibility<[ClangOption, CC1Option]>,
llvm-beanz wrote:
Since we have no tests
@@ -4647,6 +4647,16 @@ void Driver::BuildDefaultActions(Compilation &C,
DerivedArgList &Args,
// Only add action when needValidation.
const auto &TC =
static_cast(C.getDefaultToolChain());
+if (TC.requiresObjcopy(Args)) {
+ Action *LastAction = Actions
https://github.com/llvm-beanz approved this pull request.
https://github.com/llvm/llvm-project/pull/153257
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/llvm-beanz updated
https://github.com/llvm/llvm-project/pull/154179
>From e45d9079a091cf82af632d39f342335a61318b0b Mon Sep 17 00:00:00 2001
From: Chris Bieneman
Date: Mon, 18 Aug 2025 13:08:01 -0500
Subject: [PATCH 1/2] [NFC] Change const char* to StringRef
This API takes a
https://github.com/llvm-beanz created
https://github.com/llvm/llvm-project/pull/154179
This API takes a const char* with a default nullptr value and immdiately passes
it down to an API taking a StringRef. All of the places this is called from are
either using compile time string literals, the
https://github.com/llvm-beanz approved this pull request.
I'm happy with this, but @s-perron had some good comments that should be
addressed too.
https://github.com/llvm/llvm-project/pull/152454
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://github.com/llvm-beanz approved this pull request.
https://github.com/llvm/llvm-project/pull/153909
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -440,13 +476,13 @@ void CGHLSLRuntime::emitEntryFunction(const FunctionDecl
*FD,
Fn->getAttributes().getFnAttrs());
EntryFn->setAttributes(NewAttrs);
setHLSLEntryAttributes(FD, EntryFn);
+ llvm::SmallVector Args;
-
@@ -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-
@@ -232,6 +232,41 @@ class HLSLAnnotationAttr : public InheritableAttr {
}
};
+class HLSLSemanticAttr : public HLSLAnnotationAttr {
+ unsigned SemanticIndex : 30;
llvm-beanz wrote:
I was trying to figure out if we had any documentation on the valid ranges
@@ -172,6 +193,9 @@ class CGHLSLRuntime {
llvm::Triple::ArchType getArch();
llvm::DenseMap LayoutTypes;
+
+ std::unordered_set ActiveInputSemantics;
llvm-beanz wrote:
> We never use containers like unordered_set because they are generally very
> expensi
@@ -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-
@@ -468,14 +505,17 @@ void CGHLSLRuntime::emitEntryFunction(const FunctionDecl
*FD,
Args.emplace_back(PoisonValue::get(Param.getType()));
continue;
}
+
const ParmVarDecl *PD = FD->getParamDecl(Param.getArgNo() - SRetOffset);
-Args.push_back(emitInputSe
@@ -232,6 +232,41 @@ class HLSLAnnotationAttr : public InheritableAttr {
}
};
+class HLSLSemanticAttr : public HLSLAnnotationAttr {
+ unsigned SemanticIndex : 30;
+ LLVM_PREFERRED_TYPE(bool)
+ unsigned SemanticIndexable : 1;
llvm-beanz wrote:
Do we need
@@ -459,6 +495,7 @@ void CGHLSLRuntime::emitEntryFunction(const FunctionDecl
*FD,
// FIXME: support struct parameters where semantics are on members.
// See: https://github.com/llvm/llvm-project/issues/57874
+
llvm-beanz wrote:
nit: stray whitespace chan
https://github.com/llvm-beanz approved this pull request.
LGTM!
https://github.com/llvm/llvm-project/pull/152781
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/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
@@ -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
@@ -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
@@ -371,7 +431,7 @@ HLSLToolChain::TranslateArgs(const DerivedArgList &Args,
StringRef BoundArch,
std::vector SpvExtensionArgs =
Args.getAllArgValues(options::OPT_fspv_extension_EQ);
if (checkExtensionArgsAreValid(SpvExtensionArgs, getDriver())) {
- std::s
@@ -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) {
llvm-beanz w
@@ -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
https://github.com/llvm-beanz approved this pull request.
Still looks good to me. A few style nits since we don't need to explicitly
specify the llvm namespace in this file.
https://github.com/llvm/llvm-project/pull/151554
___
cfe-commits mailing list
https://github.com/llvm-beanz 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
@@ -173,24 +173,78 @@ bool isLegalValidatorVersion(StringRef ValVersionStr,
const Driver &D) {
return true;
}
+std::string getSpirvExtOperand(llvm::StringRef SpvExtensionArg) {
+ // The extensions that are commented out are supported in DXC, but the SPIR-V
+ // backend do
@@ -9428,8 +9428,12 @@ def fspv_target_env_EQ : Joined<["-"],
"fspv-target-env=">, Group,
def fspv_extension_EQ
: Joined<["-"], "fspv-extension=">,
Group,
- HelpText<"Specify the available SPIR-V extensions. If this option is not
"
- "specified, t
@@ -173,24 +173,78 @@ bool isLegalValidatorVersion(StringRef ValVersionStr,
const Driver &D) {
return true;
}
+std::string getSpirvExtOperand(llvm::StringRef SpvExtensionArg) {
llvm-beanz wrote:
nit: I would probably change this to take a `raw_ostream&` to
https://github.com/llvm-beanz approved this pull request.
A couple nits to take or leave, otherwise this looks reasonable to me.
https://github.com/llvm/llvm-project/pull/151554
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm
https://github.com/llvm-beanz 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
https://github.com/llvm-beanz approved this pull request.
https://github.com/llvm/llvm-project/pull/151353
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -84,8 +128,150 @@ static void reportOverlappingBinding(Module &M,
DXILResourceMap &DRM) {
}
}
+static void reportRegNotBound(Module &M,
+ llvm::hlsl::rootsig::RangeInfo Unbound) {
+ SmallString<128> Message;
+ raw_svector_ostream OS(Message
@@ -24,6 +26,48 @@ using namespace llvm;
using namespace llvm::dxil;
namespace {
+static const char *ResourceClassToString(llvm::dxil::ResourceClass Class) {
llvm-beanz wrote:
```suggestion
static StringRef ResourceClassToString(llvm::dxil::ResourceClass Clas
@@ -24,6 +26,48 @@ using namespace llvm;
using namespace llvm::dxil;
namespace {
+static const char *ResourceClassToString(llvm::dxil::ResourceClass Class) {
+ switch (Class) {
+ case ResourceClass::SRV:
+return "SRV";
+ case ResourceClass::UAV:
+return "UAV";
+ ca
@@ -24,6 +26,48 @@ using namespace llvm;
using namespace llvm::dxil;
namespace {
+static const char *ResourceClassToString(llvm::dxil::ResourceClass Class) {
+ switch (Class) {
+ case ResourceClass::SRV:
+return "SRV";
+ case ResourceClass::UAV:
+return "UAV";
+ ca
@@ -136,6 +136,51 @@ struct OverlappingRanges {
llvm::SmallVector
findOverlappingRanges(llvm::SmallVector &Infos);
+class RootSignatureBindingValidation {
+private:
+ llvm::SmallVector Bindings;
+ struct TypeRange {
+uint32_t Start;
+uint32_t End;
+ };
+ std::unord
@@ -136,6 +136,51 @@ struct OverlappingRanges {
llvm::SmallVector
findOverlappingRanges(llvm::SmallVector &Infos);
+class RootSignatureBindingValidation {
+private:
+ llvm::SmallVector Bindings;
+ struct TypeRange {
+uint32_t Start;
+uint32_t End;
+ };
+ std::unord
@@ -316,6 +316,32 @@ findOverlappingRanges(llvm::SmallVector &Infos)
{
return Overlaps;
}
+llvm::SmallVector
+findUnboundRanges(const llvm::ArrayRef &Ranges,
+ const llvm::ArrayRef &Bindings) {
+ llvm::SmallVector Unbounds;
+ for (const auto &Range : Rang
@@ -136,6 +136,51 @@ struct OverlappingRanges {
llvm::SmallVector
findOverlappingRanges(llvm::SmallVector &Infos);
+class RootSignatureBindingValidation {
+private:
+ llvm::SmallVector Bindings;
+ struct TypeRange {
+uint32_t Start;
+uint32_t End;
+ };
+ std::unord
https://github.com/llvm-beanz approved this pull request.
https://github.com/llvm/llvm-project/pull/147806
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/llvm-beanz approved this pull request.
Sorry for the extreme delay in review. I think everyone trying to keep up with
clangd reviews has been swamped and pretty over subscribed.
The implementation here looks clean and follows existing conventions in clangd.
It is also quite
https://github.com/llvm-beanz approved this pull request.
This will have some nuanced differences from what DXC does today because of the
differences in granularity of floating point semantic controls in LLVM today vs
3.7. That said, I think this will be conservatively correct and is probably t
@@ -0,0 +1,12 @@
+// RUN: %clang_dxc -T lib_6_4 -Gis %s 2>&1 -### | FileCheck -check-prefix=Gis
%s
+// RUN: %clang_dxc -T lib_6_4 %s 2>&1 -### | FileCheck -check-prefix=NO_Gis %s
+// RUN: not %clang_dxc -T lib_6_4 /Gis gibberish -### %s 2>&1 | FileCheck
-check-prefix=CHECK-ERR %
@@ -0,0 +1,12 @@
+// RUN: %clang_dxc -T lib_6_4 -Gis %s 2>&1 -### | FileCheck -check-prefix=Gis
%s
+// RUN: %clang_dxc -T lib_6_4 %s 2>&1 -### | FileCheck -check-prefix=NO_Gis %s
+// RUN: not %clang_dxc -T lib_6_4 /Gis gibberish -### %s 2>&1 | FileCheck
-check-prefix=CHECK-ERR %
https://github.com/llvm-beanz commented:
This looks good to me, but it would be good to get @AaronBallman's eyes on it
too.
https://github.com/llvm/llvm-project/pull/143184
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org
@@ -4942,18 +4942,13 @@ void
Parser::ParseMicrosoftRootSignatureAttributeArgs(ParsedAttributes &Attrs) {
// Construct our identifier
llvm-beanz wrote:
I suspect the "Microsoft" bit came from the attribute parsing syntax. HLSL
supports "Microsoft"-style att
https://github.com/llvm-beanz approved this pull request.
https://github.com/llvm/llvm-project/pull/134034
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/llvm-beanz approved this pull request.
https://github.com/llvm/llvm-project/pull/140627
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/llvm-beanz approved this pull request.
https://github.com/llvm/llvm-project/pull/138541
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -2095,6 +2096,17 @@ Value *ScalarExprEmitter::VisitInitListExpr(InitListExpr
*E) {
assert (Ignore == false && "init list ignored");
unsigned NumInitElements = E->getNumInits();
+ // HLSL initialization lists in the AST are an expansion which can contain
+ // side-eff
https://github.com/llvm-beanz edited
https://github.com/llvm/llvm-project/pull/137690
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/llvm-beanz commented:
A few comments, but I think this is mostly the right direction.
https://github.com/llvm/llvm-project/pull/137690
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/lis
@@ -5178,6 +5179,29 @@ class HLSLBufferDecl final : public NamedDecl, public
DeclContext {
friend class ASTDeclWriter;
};
+class HLSLRootSignatureDecl final : public NamedDecl {
+ ArrayRef RootElements;
llvm-beanz wrote:
This should probably be a `Trailin
@@ -3037,6 +3037,11 @@ void TextNodeDumper::VisitHLSLBufferDecl(const
HLSLBufferDecl *D) {
dumpName(D);
}
+void TextNodeDumper::VisitHLSLRootSignatureDecl(
+const HLSLRootSignatureDecl *D) {
+ dumpName(D);
llvm-beanz wrote:
We should think through how
@@ -949,6 +950,23 @@ void SemaHLSL::emitLogicalOperatorFixIt(Expr *LHS, Expr
*RHS,
<< NewFnName << FixItHint::CreateReplacement(FullRange, OS.str());
}
+void SemaHLSL::handleRootSignatureAttr(Decl *D, const ParsedAttr &AL) {
+ if (AL.getNumArgs() != 1) {
+Diag(AL.g
https://github.com/llvm-beanz closed
https://github.com/llvm/llvm-project/pull/133508
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/llvm-beanz updated
https://github.com/llvm/llvm-project/pull/133508
>From 6234f442adfebaaf73328d2c09ee443facc848b0 Mon Sep 17 00:00:00 2001
From: Chris Bieneman
Date: Thu, 27 Mar 2025 09:26:31 -0500
Subject: [PATCH 1/6] [HLSL] Handle incomplete array types
This refactors the
@@ -3228,6 +3228,62 @@ static QualType builtinCommonTypeImpl(Sema &S,
TemplateName BaseTemplate,
}
}
+static bool isInVkNamespace(const RecordType *RT) {
+ DeclContext *DC = RT->getDecl()->getDeclContext();
+ if (!DC)
+return false;
+
+ NamespaceDecl *ND = dyn_cast(D
@@ -5444,6 +5459,31 @@ QualType ASTContext::getHLSLAttributedResourceType(
return QualType(Ty, 0);
}
+
+QualType ASTContext::getHLSLInlineSpirvType(uint32_t Opcode, uint32_t Size,
+uint32_t Alignment,
+
@@ -877,6 +878,11 @@ bool CodeGenTypes::isZeroInitializable(QualType T) {
if (const MemberPointerType *MPT = T->getAs())
return getCXXABI().isZeroInitializable(MPT);
+ // HLSL Inline SPIR-V types are non-zero-initializable.
+ if (T->getAs()) {
+return false;
+ }
-
@@ -6330,6 +6331,140 @@ class HLSLAttributedResourceType : public Type, public
llvm::FoldingSetNode {
findHandleTypeOnResource(const Type *RT);
};
+/// Instances of this class represent operands to a SPIR-V type instruction.
+class SpirvOperand {
+public:
+ enum SpirvOpera
@@ -0,0 +1,12 @@
+// RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \
+// RUN: dxil-pc-shadermodel6.0-compute %s \
+// RUN: -fsyntax-only -verify
+
+typedef vk::SpirvType<12, 2, 4, float> InvalidType1; // expected-error {{use
of undeclared identifier 'vk'}}
+vk::Li
llvm-beanz wrote:
Please move to SemaHLSL.
https://github.com/llvm/llvm-project/pull/134034
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -3228,6 +3228,62 @@ static QualType builtinCommonTypeImpl(Sema &S,
TemplateName BaseTemplate,
}
}
+static bool isInVkNamespace(const RecordType *RT) {
+ DeclContext *DC = RT->getDecl()->getDeclContext();
+ if (!DC)
+return false;
+
+ NamespaceDecl *ND = dyn_cast(D
@@ -3332,6 +3388,39 @@ checkBuiltinTemplateIdType(Sema &SemaRef,
BuiltinTemplateDecl *BTD,
}
return HasNoTypeMember;
}
+
+ case BTK__hlsl_spirv_type: {
+assert(Converted.size() == 4);
+
+if (!Context.getTargetInfo().getTriple().isSPIRV()) {
+ SemaRef.Di
@@ -3332,6 +3388,39 @@ checkBuiltinTemplateIdType(Sema &SemaRef,
BuiltinTemplateDecl *BTD,
}
return HasNoTypeMember;
}
+
+ case BTK__hlsl_spirv_type: {
+assert(Converted.size() == 4);
+
+if (!Context.getTargetInfo().getTriple().isSPIRV()) {
+ SemaRef.Di
@@ -6330,6 +6331,140 @@ class HLSLAttributedResourceType : public Type, public
llvm::FoldingSetNode {
findHandleTypeOnResource(const Type *RT);
};
+/// Instances of this class represent operands to a SPIR-V type instruction.
+class SpirvOperand {
+public:
+ enum SpirvOpera
@@ -0,0 +1,28 @@
+//===- hlsl_spirv.h - HLSL definitions for SPIR-V target
--===//
+//
+// 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: Apa
@@ -6330,6 +6331,140 @@ class HLSLAttributedResourceType : public Type, public
llvm::FoldingSetNode {
findHandleTypeOnResource(const Type *RT);
};
+/// Instances of this class represent operands to a SPIR-V type instruction.
+class SpirvOperand {
+public:
+ enum SpirvOpera
llvm-beanz wrote:
Cool... cool... This is fine, but it looks like #130910 rewrote the line
endings on some test files to CRLF.
@hekota might be worth checking your editor settings and cleaning up the test
files to avoid every edit rewriting every line of the
@@ -369,14 +369,102 @@ llvm::Type
*CommonSPIRTargetCodeGenInfo::getOpenCLType(CodeGenModule &CGM,
return nullptr;
}
+// Gets a spirv.IntegralConstant or spirv.Literal. If IntegralType is present,
+// returns an IntegralConstant, otherwise returns a Literal.
+static llvm::Ty
https://github.com/llvm-beanz commented:
A few substantive comments, but mostly coding standard nits.
https://github.com/llvm/llvm-project/pull/134034
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listin
@@ -6165,6 +6254,18 @@ bool
UnnamedLocalNoLinkageFinder::VisitHLSLAttributedResourceType(
return Visit(T->getWrappedType());
}
+bool UnnamedLocalNoLinkageFinder::VisitHLSLInlineSpirvType(
+const HLSLInlineSpirvType *T) {
+ for (auto &Operand : T->getOperands()) {
+
https://github.com/llvm-beanz edited
https://github.com/llvm/llvm-project/pull/134034
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/llvm-beanz approved this pull request.
https://github.com/llvm/llvm-project/pull/136234
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/llvm-beanz updated
https://github.com/llvm/llvm-project/pull/133508
>From 6234f442adfebaaf73328d2c09ee443facc848b0 Mon Sep 17 00:00:00 2001
From: Chris Bieneman
Date: Thu, 27 Mar 2025 09:26:31 -0500
Subject: [PATCH 1/6] [HLSL] Handle incomplete array types
This refactors the
https://github.com/llvm-beanz approved this pull request.
https://github.com/llvm/llvm-project/pull/135909
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/llvm-beanz closed
https://github.com/llvm/llvm-project/pull/135830
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -11360,6 +11360,14 @@ static void AnalyzeAssignment(Sema &S, BinaryOperator
*E) {
static void DiagnoseImpCast(Sema &S, Expr *E, QualType SourceType, QualType T,
SourceLocation CContext, unsigned diag,
bool pruneControl
@@ -11360,6 +11360,14 @@ static void AnalyzeAssignment(Sema &S, BinaryOperator
*E) {
static void DiagnoseImpCast(Sema &S, Expr *E, QualType SourceType, QualType T,
SourceLocation CContext, unsigned diag,
bool pruneControl
https://github.com/llvm-beanz created
https://github.com/llvm/llvm-project/pull/135830
The address space of a source value for an implicit cast isn't really relevant
when emitting conversion warnings. Since the lvalue->rvalue cast effectively
removes the address space they don't factor in, but
@@ -89,37 +88,178 @@ bool RootSignatureParser::parseDescriptorTableClause() {
CurToken.TokKind == TokenKind::kw_UAV ||
CurToken.TokKind == TokenKind::kw_Sampler) &&
"Expects to only be invoked starting at given keyword");
+ TokenKind ParamKind = Cu
https://github.com/llvm-beanz approved this pull request.
https://github.com/llvm/llvm-project/pull/135125
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -3964,6 +3964,8 @@ Value *ScalarExprEmitter::EmitRem(const BinOpInfo &Ops) {
if (Ops.Ty->hasUnsignedIntegerRepresentation())
return Builder.CreateURem(Ops.LHS, Ops.RHS, "rem");
+ else if (CGF.getLangOpts().HLSL && Ops.Ty->hasFloatingRepresentation())
+return Buil
@@ -89,37 +88,178 @@ bool RootSignatureParser::parseDescriptorTableClause() {
CurToken.TokKind == TokenKind::kw_UAV ||
CurToken.TokKind == TokenKind::kw_Sampler) &&
"Expects to only be invoked starting at given keyword");
+ TokenKind ParamKind = Cu
@@ -3249,166 +3249,204 @@ void SemaHLSL::processExplicitBindingsOnDecl(VarDecl
*VD) {
}
}
}
-
-static bool CastInitializer(Sema &S, ASTContext &Ctx, Expr *E,
-llvm::SmallVectorImpl &List,
-llvm::SmallVectorImpl &Des
https://github.com/llvm-beanz updated
https://github.com/llvm/llvm-project/pull/133508
>From 6234f442adfebaaf73328d2c09ee443facc848b0 Mon Sep 17 00:00:00 2001
From: Chris Bieneman
Date: Thu, 27 Mar 2025 09:26:31 -0500
Subject: [PATCH 1/5] [HLSL] Handle incomplete array types
This refactors the
@@ -3249,166 +3249,204 @@ void SemaHLSL::processExplicitBindingsOnDecl(VarDecl
*VD) {
}
}
}
-
-static bool CastInitializer(Sema &S, ASTContext &Ctx, Expr *E,
-llvm::SmallVectorImpl &List,
-llvm::SmallVectorImpl &Des
llvm-beanz wrote:
> Given your feedback here it sounds like you want us to drop the template and
> allow for implicit vector truncation so that the error will be ambiguous
> instead of `call to deleted function 'lit'`?
Yes, let's not add compatibility overloads unless we have driving reasons f
@@ -280,6 +280,17 @@ constexpr bool4 isinf(double4 V) { return
isinf((float4)V); }
_DXC_COMPAT_TERNARY_DOUBLE_OVERLOADS(lerp)
_DXC_COMPAT_TERNARY_INTEGER_OVERLOADS(lerp)
+//===--===//
+// lit builtins overloa
@@ -89,37 +88,178 @@ bool RootSignatureParser::parseDescriptorTableClause() {
CurToken.TokKind == TokenKind::kw_UAV ||
CurToken.TokKind == TokenKind::kw_Sampler) &&
"Expects to only be invoked starting at given keyword");
+ TokenKind ParamKind = Cu
@@ -280,6 +280,17 @@ constexpr bool4 isinf(double4 V) { return
isinf((float4)V); }
_DXC_COMPAT_TERNARY_DOUBLE_OVERLOADS(lerp)
_DXC_COMPAT_TERNARY_INTEGER_OVERLOADS(lerp)
+//===--===//
+// lit builtins overloa
1 - 100 of 1053 matches
Mail list logo