@@ -31,7 +31,7 @@ createArrayWithNewElementType(CodeGenModule &CGM,
31
31
}
32
32
33
33
// Returns the size of a scalar or vector in bytes/
34
- static unsigned getScalarOrVectorSize (llvm::Type *Ty) {
34
+ static unsigned getScalarOrVectorSizeInBytes (llvm::Type *Ty) {
35
35
assert (Ty->isVectorTy () || Ty->isIntegerTy () || Ty->isFloatingPointTy ());
36
36
if (Ty->isVectorTy ()) {
37
37
llvm::FixedVectorType *FVT = cast<llvm::FixedVectorType>(Ty);
@@ -65,6 +65,7 @@ llvm::Type *CommonHLSLTargetCodeGenInfo::createHLSLBufferLayoutType(
65
65
SmallVector<llvm::Type *> LayoutElements;
66
66
unsigned Index = 0 ; // packoffset index
67
67
unsigned EndOffset = 0 ;
68
+ const unsigned BufferRowAlign = 16U ;
68
69
69
70
// reserve first spot in the layout vector for buffer size
70
71
Layout.push_back (0 );
@@ -94,7 +95,7 @@ llvm::Type *CommonHLSLTargetCodeGenInfo::createHLSLBufferLayoutType(
94
95
unsigned ElemOffset = 0 ;
95
96
unsigned ArrayCount = 1 ;
96
97
unsigned ArrayStride = 0 ;
97
- unsigned NextRowOffset = llvm::alignTo (EndOffset, 16U );
98
+ unsigned NextRowOffset = llvm::alignTo (EndOffset, BufferRowAlign );
98
99
llvm::Type *ElemLayoutTy = nullptr ;
99
100
100
101
QualType FieldTy = FD->getType ();
@@ -120,11 +121,11 @@ llvm::Type *CommonHLSLTargetCodeGenInfo::createHLSLBufferLayoutType(
120
121
CGM, cast<ConstantArrayType>(FieldTy.getTypePtr ()), NewTy);
121
122
} else {
122
123
// Array of vectors or scalars
123
- ElemSize =
124
- getScalarOrVectorSize ( CGM.getTypes ().ConvertTypeForMem (Ty));
124
+ ElemSize = getScalarOrVectorSizeInBytes (
125
+ CGM.getTypes ().ConvertTypeForMem (Ty));
125
126
ElemLayoutTy = CGM.getTypes ().ConvertTypeForMem (FieldTy);
126
127
}
127
- ArrayStride = llvm::alignTo (ElemSize, 16U );
128
+ ArrayStride = llvm::alignTo (ElemSize, BufferRowAlign );
128
129
ElemOffset =
129
130
Packoffsets != nullptr ? (*Packoffsets)[Index] : NextRowOffset;
130
131
0 commit comments