Skip to content

Commit 7a0d3ca

Browse files
committed
[HLSL] Reorder the arguments of handle initialization builtins
Reorder the arguments of handle initialization builtins to match the order of the llvm intrinsics, and also to match the arguments on the static create methods for resources (coming soon).
1 parent 58df9b1 commit 7a0d3ca

File tree

6 files changed

+10
-10
lines changed

6 files changed

+10
-10
lines changed

clang/lib/CodeGen/CGHLSLBuiltins.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -348,10 +348,10 @@ Value *CodeGenFunction::EmitHLSLBuiltinExpr(unsigned BuiltinID,
348348
}
349349
case Builtin::BI__builtin_hlsl_resource_handlefromimplicitbinding: {
350350
llvm::Type *HandleTy = CGM.getTypes().ConvertType(E->getType());
351-
Value *SpaceOp = EmitScalarExpr(E->getArg(1));
352-
Value *RangeOp = EmitScalarExpr(E->getArg(2));
353-
Value *IndexOp = EmitScalarExpr(E->getArg(3));
354-
Value *OrderID = EmitScalarExpr(E->getArg(4));
351+
Value *OrderID = EmitScalarExpr(E->getArg(1));
352+
Value *SpaceOp = EmitScalarExpr(E->getArg(2));
353+
Value *RangeOp = EmitScalarExpr(E->getArg(3));
354+
Value *IndexOp = EmitScalarExpr(E->getArg(4));
355355
Value *Name = EmitScalarExpr(E->getArg(5));
356356
// FIXME: NonUniformResourceIndex bit is not yet implemented
357357
// (llvm/llvm-project#135452)

clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -670,7 +670,7 @@ BuiltinTypeDeclBuilder::addHandleConstructorFromImplicitBinding() {
670670
.addParam("orderId", AST.UnsignedIntTy)
671671
.addParam("name", AST.getPointerType(AST.CharTy.withConst()))
672672
.callBuiltin("__builtin_hlsl_resource_handlefromimplicitbinding",
673-
HandleType, PH::Handle, PH::_0, PH::_1, PH::_2, PH::_3,
673+
HandleType, PH::Handle, PH::_3, PH::_0, PH::_1, PH::_2,
674674
PH::_4)
675675
.assign(PH::Handle, PH::LastStmt)
676676
.finalize();

clang/lib/Sema/SemaHLSL.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2853,8 +2853,8 @@ bool SemaHLSL::CheckBuiltinFunctionCall(unsigned BuiltinID, CallExpr *TheCall) {
28532853
if (SemaRef.checkArgCount(TheCall, 6) ||
28542854
CheckResourceHandle(&SemaRef, TheCall, 0) ||
28552855
CheckArgTypeMatches(&SemaRef, TheCall->getArg(1), AST.UnsignedIntTy) ||
2856-
CheckArgTypeMatches(&SemaRef, TheCall->getArg(2), AST.IntTy) ||
2857-
CheckArgTypeMatches(&SemaRef, TheCall->getArg(3), AST.UnsignedIntTy) ||
2856+
CheckArgTypeMatches(&SemaRef, TheCall->getArg(2), AST.UnsignedIntTy) ||
2857+
CheckArgTypeMatches(&SemaRef, TheCall->getArg(3), AST.IntTy) ||
28582858
CheckArgTypeMatches(&SemaRef, TheCall->getArg(4), AST.UnsignedIntTy) ||
28592859
CheckArgTypeMatches(&SemaRef, TheCall->getArg(5),
28602860
AST.getPointerType(AST.CharTy.withConst())))

clang/test/AST/HLSL/ByteAddressBuffers-AST.hlsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,10 @@ RESOURCE Buffer;
9797
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_handlefromimplicitbinding'
9898
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
9999
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this
100+
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'orderId' 'unsigned int'
100101
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'spaceNo' 'unsigned int'
101102
// CHECK-NEXT: DeclRefExpr {{.*}} 'int' ParmVar {{.*}} 'range' 'int'
102103
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'index' 'unsigned int'
103-
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'orderId' 'unsigned int'
104104
// CHECK-NEXT: DeclRefExpr {{.*}} 'const char *' ParmVar {{.*}} 'name' 'const char *'
105105
// CHECK-NEXT: AlwaysInlineAttr
106106

clang/test/AST/HLSL/StructuredBuffers-AST.hlsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,10 @@ RESOURCE<float> Buffer;
144144
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_handlefromimplicitbinding'
145145
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
146146
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]<element_type>' lvalue implicit this
147+
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'orderId' 'unsigned int'
147148
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'spaceNo' 'unsigned int'
148149
// CHECK-NEXT: DeclRefExpr {{.*}} 'int' ParmVar {{.*}} 'range' 'int'
149150
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'index' 'unsigned int'
150-
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'orderId' 'unsigned int'
151151
// CHECK-NEXT: DeclRefExpr {{.*}} 'const char *' ParmVar {{.*}} 'name' 'const char *'
152152
// CHECK-NEXT: AlwaysInlineAttr
153153

clang/test/AST/HLSL/TypedBuffers-AST.hlsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,10 +119,10 @@ RESOURCE<float> Buffer;
119119
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_handlefromimplicitbinding'
120120
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
121121
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]<element_type>' lvalue implicit this
122+
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'orderId' 'unsigned int'
122123
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'spaceNo' 'unsigned int'
123124
// CHECK-NEXT: DeclRefExpr {{.*}} 'int' ParmVar {{.*}} 'range' 'int'
124125
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'index' 'unsigned int'
125-
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'orderId' 'unsigned int'
126126
// CHECK-NEXT: DeclRefExpr {{.*}} 'const char *' ParmVar {{.*}} 'name' 'const char *'
127127
// CHECK-NEXT: AlwaysInlineAttr
128128

0 commit comments

Comments
 (0)