https://github.com/llvm-beanz updated
https://github.com/llvm/llvm-project/pull/127557
>From 54ba5ffea82a9613fd343750ec36242e1494f5e4 Mon Sep 17 00:00:00 2001
From: Chris Bieneman
Date: Mon, 17 Feb 2025 20:41:18 -0600
Subject: [PATCH 1/2] [HLSL] Allow arrays to copy-initialize
This change allo
@@ -94,6 +94,11 @@ bool Qualifiers::isTargetAddressSpaceSupersetOf(LangAS A,
LangAS B,
(A == LangAS::Default &&
(B == LangAS::cuda_constant || B == LangAS::cuda_device ||
B == LangAS::cuda_shared)) ||
+ // In HLSL, the this pointer for mem
@@ -12411,16 +12411,13 @@ def err_builtin_is_within_lifetime_invalid_arg :
Error<
"%select{non-|function }0pointer argument to '__builtin_is_within_lifetime' "
"is not allowed">;
-def err_builtin_invalid_arg_type: Error <
- "%ordinal0 argument must be "
- "%select{a vec
https://github.com/llvm-beanz created
https://github.com/llvm/llvm-project/pull/127557
This change allows array variables to copy-initialize from other arrays. It
also corrects a small error in HLSL C-Style casting that did not error on
casting to arrays if elementwise and splat conversions fa
@@ -2245,6 +2245,36 @@ bool SemaHLSL::CheckBuiltinFunctionCall(unsigned
BuiltinID, CallExpr *TheCall) {
break;
}
+ case Builtin::BI__builtin_hlsl_and: {
+if (SemaRef.checkArgCount(TheCall, 2))
+ return true;
+if (CheckVectorElementCallArgs(&SemaRef, TheCal
@@ -2245,6 +2245,36 @@ bool SemaHLSL::CheckBuiltinFunctionCall(unsigned
BuiltinID, CallExpr *TheCall) {
break;
}
+ case Builtin::BI__builtin_hlsl_and: {
+if (SemaRef.checkArgCount(TheCall, 2))
+ return true;
+if (CheckVectorElementCallArgs(&SemaRef, TheCal
@@ -2245,6 +2245,36 @@ bool SemaHLSL::CheckBuiltinFunctionCall(unsigned
BuiltinID, CallExpr *TheCall) {
break;
}
+ case Builtin::BI__builtin_hlsl_and: {
+if (SemaRef.checkArgCount(TheCall, 2))
+ return true;
+if (CheckVectorElementCallArgs(&SemaRef, TheCal
@@ -2245,6 +2245,36 @@ bool SemaHLSL::CheckBuiltinFunctionCall(unsigned
BuiltinID, CallExpr *TheCall) {
break;
}
+ case Builtin::BI__builtin_hlsl_and: {
+if (SemaRef.checkArgCount(TheCall, 2))
+ return true;
+if (CheckVectorElementCallArgs(&SemaRef, TheCal
@@ -2245,6 +2245,36 @@ bool SemaHLSL::CheckBuiltinFunctionCall(unsigned
BuiltinID, CallExpr *TheCall) {
break;
}
+ case Builtin::BI__builtin_hlsl_and: {
+if (SemaRef.checkArgCount(TheCall, 2))
+ return true;
+if (CheckVectorElementCallArgs(&SemaRef, TheCal
https://github.com/llvm-beanz closed
https://github.com/llvm/llvm-project/pull/121515
___
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/130173
___
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/129396
>From 7620f9fac9932a13f1da0468b02c1aeceb212a0b Mon Sep 17 00:00:00 2001
From: Chris Bieneman
Date: Wed, 19 Feb 2025 17:18:20 -0600
Subject: [PATCH 1/3] [HLSL] select scalar overloads for vector conditions
Th
https://github.com/llvm-beanz updated
https://github.com/llvm/llvm-project/pull/129396
>From 999c9253dc69c43f2d5d686bb4e9a9fd2f8783d4 Mon Sep 17 00:00:00 2001
From: Chris Bieneman
Date: Wed, 19 Feb 2025 17:18:20 -0600
Subject: [PATCH 1/2] [HLSL] select scalar overloads for vector conditions
Th
@@ -0,0 +1,71 @@
+//===- hlsl_intrinsic_helpers.h - HLSL helpers intrinsics
-===//
+//
+// 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
@@ -4790,7 +4790,7 @@ def HLSLPackOffset: HLSLAnnotationAttr {
}
def HLSLSV_DispatchThreadID: HLSLAnnotationAttr {
- let Spellings = [HLSLAnnotation<"SV_DispatchThreadID">];
+ let Spellings = [HLSLAnnotation<"sv_dispatchthreadid">];
llvm-beanz wrote:
Can we
https://github.com/llvm-beanz created
https://github.com/llvm/llvm-project/pull/130436
This updates the DXV and Metal Converter actions to properly use temporary
files created by the driver. I've abstracted away a check to determine if an
action is the last in the sequence because we may have
https://github.com/llvm-beanz updated
https://github.com/llvm/llvm-project/pull/129396
>From 7620f9fac9932a13f1da0468b02c1aeceb212a0b Mon Sep 17 00:00:00 2001
From: Chris Bieneman
Date: Wed, 19 Feb 2025 17:18:20 -0600
Subject: [PATCH 1/6] [HLSL] select scalar overloads for vector conditions
Th
https://github.com/llvm-beanz updated
https://github.com/llvm/llvm-project/pull/129396
>From 7620f9fac9932a13f1da0468b02c1aeceb212a0b Mon Sep 17 00:00:00 2001
From: Chris Bieneman
Date: Wed, 19 Feb 2025 17:18:20 -0600
Subject: [PATCH 1/5] [HLSL] select scalar overloads for vector conditions
Th
https://github.com/llvm-beanz updated
https://github.com/llvm/llvm-project/pull/129396
>From 7620f9fac9932a13f1da0468b02c1aeceb212a0b Mon Sep 17 00:00:00 2001
From: Chris Bieneman
Date: Wed, 19 Feb 2025 17:18:20 -0600
Subject: [PATCH 1/4] [HLSL] select scalar overloads for vector conditions
Th
@@ -1817,5 +1817,9 @@ def ext_hlsl_access_specifiers : ExtWarn<
InGroup;
def err_hlsl_unsupported_component : Error<"invalid component '%0' used;
expected 'x', 'y', 'z', or 'w'">;
def err_hlsl_packoffset_invalid_reg : Error<"invalid resource class specifier
'%0' for packoff
https://github.com/llvm-beanz closed
https://github.com/llvm/llvm-project/pull/127346
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/llvm-beanz created
https://github.com/llvm/llvm-project/pull/130173
This adds a flag to the DXC driver to enable calling the metal shader converter
if it is available to convert the final shader output for metal.
>From 0e5a24665c3a9522263b2ddfbce5f46e6a0e33c9 Mon Sep 17 00:0
https://github.com/llvm-beanz closed
https://github.com/llvm/llvm-project/pull/130436
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Nathan =?utf-8?q?Gauër?=
Message-ID:
In-Reply-To:
llvm-beanz wrote:
Is there a reason we can't do this in Sema? It would probably be ideal to have
the AST represent the address spaces of values accurately.
https://github.com/llvm/llvm-project/pull/122103
_
llvm-beanz wrote:
> > nit: is there a way to check that the spelling is consistent in the error
> > messages? Asking since I am no familiar with this part of the code.
>
> I'm not sure I understand what you mean.
I think the point (and my earlier comment) is to use the spelling as it is
writt
@@ -14017,6 +14017,24 @@ void Sema::CheckCastAlign(Expr *Op, QualType T,
SourceRange TRange) {
<< TRange << Op->getSourceRange();
}
+void Sema::CheckVectorAccess(const Expr *BaseExpr, const Expr *IndexExpr) {
+ const VectorType *VTy = BaseExpr->getType()->getAs();
+ if
@@ -10635,6 +10635,12 @@ def err_block_on_vm : Error<
def err_sizeless_nonlocal : Error<
"non-local variable with sizeless type %0">;
+def err_vector_index_out_of_range : Error<
+ "vector element index %0 is out of bounds">;
+def warn_vector_index_out_of_range : Warning<
+
@@ -0,0 +1,417 @@
+#include "clang/Parse/ParseHLSLRootSignature.h"
llvm-beanz wrote:
This is the file with the missing license header that @bob80905 pointed out.
https://github.com/llvm/llvm-project/pull/122982
___
cfe
@@ -0,0 +1,375 @@
+//=== ParseHLSLRootSignatureTest.cpp - Parse Root Signature tests
-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
llvm-beanz wro
https://github.com/llvm-beanz created
https://github.com/llvm/llvm-project/pull/129396
This PR adds scalar/vector overloads for vector conditions to the `select`
builtin, and updates the sema checking and codegen to allow scalars to extend
to vectors.
Fixes #126570
>From 999c9253dc69c43f2d5d
https://github.com/llvm-beanz approved this pull request.
https://github.com/llvm/llvm-project/pull/129773
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -14017,6 +14017,24 @@ void Sema::CheckCastAlign(Expr *Op, QualType T,
SourceRange TRange) {
<< TRange << Op->getSourceRange();
}
+void Sema::CheckVectorAccess(const Expr *BaseExpr, const Expr *IndexExpr) {
+ const VectorType *VTy = BaseExpr->getType()->getAs();
+ if
https://github.com/llvm-beanz closed
https://github.com/llvm/llvm-project/pull/129396
___
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:
this is not NFC, so we should verify that we can call these intrinsics with
`half` values even if 16-bit types aren't enabled, and that they properly
codegen to 32-bit variants.
https://github.com/llvm/llvm-project/pull/132804
__
llvm-beanz wrote:
> Finish the work of #81782
Maybe instead:
> Apply pattern of #81782 to intrinsics added in #95999.
Also probably worth having a description of the problem this solves in the
description so that it ends up in the final commit message.
https://github.com/llvm/llvm-project/pu
@@ -2276,6 +2276,29 @@ void CodeGenFunction::EmitSwitchStmt(const SwitchStmt
&S) {
// failure.
llvm::BasicBlock *DefaultBlock = createBasicBlock("sw.default");
SwitchInsn = Builder.CreateSwitch(CondV, DefaultBlock);
+ switch (HLSLControlFlowAttr) {
+ case HLSLControlFl
https://github.com/llvm-beanz approved this pull request.
https://github.com/llvm/llvm-project/pull/131739
___
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:
One small nit on formatting, otherwise looks good.
https://github.com/llvm/llvm-project/pull/129939
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-com
https://github.com/llvm-beanz created
https://github.com/llvm/llvm-project/pull/133508
This refactors the initialization list transformation code to handle incomplete
array types.
Fixes #132958
>From 6234f442adfebaaf73328d2c09ee443facc848b0 Mon Sep 17 00:00:00 2001
From: Chris Bieneman
Date:
@@ -16,6 +16,84 @@ namespace hlsl {
// unsigned integer and floating point. Keeping this ordering consistent will
// help keep this file manageable as it grows.
+#define _DXC_COMPAT_UNARY_DOUBLE_OVERLOADS(fn)
\
+ constexpr float fn(double V) {
https://github.com/llvm-beanz approved this pull request.
https://github.com/llvm/llvm-project/pull/132979
___
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/133162
___
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
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
@@ -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
@@ -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
@@ -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
@@ -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/133520
___
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/2] [HLSL] Handle incomplete array types
This refactors the
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/3] [HLSL] Handle incomplete array types
This refactors the
https://github.com/llvm-beanz approved this pull request.
https://github.com/llvm/llvm-project/pull/133441
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -141,6 +141,8 @@ void Parser::ParseHLSLAnnotations(ParsedAttributes &Attrs,
return;
}
+ II = PP.getIdentifierInfo(II->getName().lower());
llvm-beanz wrote:
Can we keep the original identifier around and use that for the diagnostics so
that the diag
https://github.com/llvm-beanz edited
https://github.com/llvm/llvm-project/pull/129939
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,59 @@
+//===--- hlsl_compat_overloads.h - Additional HLSL overload definitions for
+// intrinsics --===//
llvm-beanz wrote:
nit: shorten the summary so this fits on one line.
https://github.com/llvm/llvm-project/pull/129939
___
@@ -54,5 +54,67 @@ clamp(U p0, V p1, W p2) {
return clamp(p0, (U)p1, (U)p2);
}
+//===--===//
+// max builtin overloads
+//===--===//
+
+tem
@@ -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
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
@@ -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 approved this pull request.
https://github.com/llvm/llvm-project/pull/134683
___
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/4] [HLSL] Handle incomplete array types
This refactors the
https://github.com/llvm-beanz approved this pull request.
https://github.com/llvm/llvm-project/pull/131666
___
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
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 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
@@ -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 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/136234
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -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
@@ -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
@@ -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
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
@@ -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
@@ -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
@@ -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;
+ }
-
@@ -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,
+
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
@@ -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
@@ -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
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
@@ -6165,6 +6254,18 @@ bool
UnnamedLocalNoLinkageFinder::VisitHLSLAttributedResourceType(
return Visit(T->getWrappedType());
}
+bool UnnamedLocalNoLinkageFinder::VisitHLSLInlineSpirvType(
+const HLSLInlineSpirvType *T) {
+ for (auto &Operand : T->getOperands()) {
+
@@ -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
@@ -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
@@ -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
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
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 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
901 - 995 of 995 matches
Mail list logo