Skip to content

Commit 3c2d342

Browse files
committed
[IRGen] NFC: Fix tests to reflect struct field vector size changes
1 parent 78822bc commit 3c2d342

File tree

6 files changed

+48
-48
lines changed

6 files changed

+48
-48
lines changed

test/IRGen/foreign_types.sil

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ import c_layout
2020
// CHECK-SAME: @"$SSo14HasNestedUnionV18__Unnamed_struct_sVWV"
2121
// CHECK-SAME: [[INT]] 1,
2222
// CHECK-SAME: @"$SSo14HasNestedUnionV18__Unnamed_struct_sVMn"
23-
// CHECK-SAME: [[INT]] 0,
24-
// CHECK-SAME: [[INT]] 4 }
23+
// CHECK-SAME: i32 0,
24+
// CHECK-SAME: i32 4 }
2525

2626
// CHECK-LABEL: @"\01l_type_metadata_table" = private constant
2727
// CHECK-SAME: @"$SSo14HasNestedUnionVMn"

test/IRGen/generic_structs.sil

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import Builtin
88

99
// -- Generic structs with fixed layout should have no completion function
1010
// and emit the field offset vector as part of the pattern.
11-
// CHECK: [[PATTERN:@.*]] = internal constant [3 x i64] [i64 0, i64 1, i64 8]
11+
// CHECK: [[PATTERN:@.*]] = internal constant [4 x i32] [i32 0, i32 1, i32 8, i32 0]
1212
// CHECK-LABEL: @"$S15generic_structs18FixedLayoutGenericVMP" = internal constant <{ {{.*}} }> <{
1313
// -- instantiation function
1414
// CHECK-SAME: %swift.type* (%swift.type_descriptor*, i8**, i8**)* @"$S15generic_structs18FixedLayoutGenericVMi"
@@ -19,9 +19,9 @@ import Builtin
1919
// -- vwtable pointer
2020
// CHECK-SAME: @"$S15generic_structs18FixedLayoutGenericVWV"
2121
// -- extra data pattern
22-
// CHECK-SAME: [3 x i64]* [[PATTERN]]
22+
// CHECK-SAME: [4 x i32]* [[PATTERN]]
2323
// CHECK-SAME: i16 1,
24-
// CHECK-SAME: i16 3 }>
24+
// CHECK-SAME: i16 2 }>
2525

2626
// -- Generic structs with dynamic layout contain the vwtable pattern as part
2727
// of the metadata pattern, and no independent vwtable symbol
@@ -95,14 +95,14 @@ import Builtin
9595
// CHECK: @"$S15generic_structs23DynamicWithRequirementsVMP" = internal constant <{ {{.*}} }> <{
9696

9797
// -- Fixed-layout struct metadata contains fixed field offsets
98-
// CHECK: @"$S15generic_structs6IntishVMf" = internal constant <{ {{.*}} i64 }> <{
99-
// CHECK-SAME: i64 0
98+
// CHECK: @"$S15generic_structs6IntishVMf" = internal constant <{ {{.*}} i32, [4 x i8] }> <{
99+
// CHECK-SAME: i32 0
100100
// CHECK-SAME: }>
101-
// CHECK: @"$S15generic_structs7CharethVMf" = internal constant <{ {{.*}} i64 }> <{
102-
// CHECK-SAME: i64 0
101+
// CHECK: @"$S15generic_structs7CharethVMf" = internal constant <{ {{.*}} i32, [4 x i8] }> <{
102+
// CHECK-SAME: i32 0
103103
// CHECK-SAME: }>
104-
// CHECK: @"$S15generic_structs8StringlyVMf" = internal constant <{ {{.*}} i64, i64, i64 }> <{
105-
// CHECK-SAME: i64 0, i64 8, i64 16
104+
// CHECK: @"$S15generic_structs8StringlyVMf" = internal constant <{ {{.*}} i32, i32, i32, [4 x i8] }> <{
105+
// CHECK-SAME: i32 0, i32 8, i32 16, [4 x i8] zeroinitializer
106106
// CHECK-SAME: }>
107107

108108
struct FixedLayoutGeneric<T> {
@@ -160,31 +160,31 @@ sil @explode_complex_dynamic : $<A, B> (@in ComplexDynamic<A, B>, @inout Byteful
160160
entry(%0 : $*ComplexDynamic<A, B>, %1 : $*Byteful, %2 : $*A, %3 : $*B, %4 : $*Chareth):
161161
%a = struct_element_addr %0 : $*ComplexDynamic<A, B>, #ComplexDynamic.a2
162162

163-
// CHECK: [[METADATA:%.*]] = bitcast %swift.type* {{%.*}} to i64*
164-
// CHECK: [[FIELD_OFFSET_VECTOR:%.*]] = getelementptr inbounds i64, i64* [[METADATA]], i64 4
165-
// CHECK: [[FIELD_OFFSET_ADDR:%.*]] = getelementptr inbounds i64, i64* [[FIELD_OFFSET_VECTOR]], i32 2
166-
// CHECK: [[FIELD_OFFSET:%.*]] = load i64, i64* [[FIELD_OFFSET_ADDR]], align 8
163+
// CHECK: [[METADATA:%.*]] = bitcast %swift.type* {{%.*}} to i32*
164+
// CHECK: [[FIELD_OFFSET_VECTOR:%.*]] = getelementptr inbounds i32, i32* [[METADATA]], i64 8
165+
// CHECK: [[FIELD_OFFSET_ADDR:%.*]] = getelementptr inbounds i32, i32* [[FIELD_OFFSET_VECTOR]], i32 2
166+
// CHECK: [[FIELD_OFFSET:%.*]] = load i32, i32* [[FIELD_OFFSET_ADDR]], align 8
167167
// CHECK: [[BYTES:%.*]] = bitcast %T15generic_structs14ComplexDynamicV* %0 to i8*
168-
// CHECK: [[BYTE_OFFSET:%.*]] = getelementptr inbounds i8, i8* [[BYTES]], i64 [[FIELD_OFFSET]]
168+
// CHECK: [[BYTE_OFFSET:%.*]] = getelementptr inbounds i8, i8* [[BYTES]], i32 [[FIELD_OFFSET]]
169169
// CHECK: bitcast i8* [[BYTE_OFFSET]] to %swift.opaque*
170170
%b = struct_element_addr %0 : $*ComplexDynamic<A, B>, #ComplexDynamic.b
171171

172-
// CHECK: [[METADATA:%.*]] = bitcast %swift.type* {{%.*}} to i64*
173-
// CHECK: [[FIELD_OFFSET_VECTOR:%.*]] = getelementptr inbounds i64, i64* [[METADATA]], i64 4
174-
// CHECK: [[FIELD_OFFSET_ADDR:%.*]] = getelementptr inbounds i64, i64* [[FIELD_OFFSET_VECTOR]], i32 3
175-
// CHECK: [[FIELD_OFFSET:%.*]] = load i64, i64* [[FIELD_OFFSET_ADDR]], align 8
172+
// CHECK: [[METADATA:%.*]] = bitcast %swift.type* {{%.*}} to i32*
173+
// CHECK: [[FIELD_OFFSET_VECTOR:%.*]] = getelementptr inbounds i32, i32* [[METADATA]], i64 8
174+
// CHECK: [[FIELD_OFFSET_ADDR:%.*]] = getelementptr inbounds i32, i32* [[FIELD_OFFSET_VECTOR]], i32 3
175+
// CHECK: [[FIELD_OFFSET:%.*]] = load i32, i32* [[FIELD_OFFSET_ADDR]], align 8
176176
// CHECK: [[BYTES:%.*]] = bitcast %T15generic_structs14ComplexDynamicV* %0 to i8*
177-
// CHECK: [[BYTE_OFFSET:%.*]] = getelementptr inbounds i8, i8* [[BYTES]], i64 [[FIELD_OFFSET]]
177+
// CHECK: [[BYTE_OFFSET:%.*]] = getelementptr inbounds i8, i8* [[BYTES]], i32 [[FIELD_OFFSET]]
178178
// CHECK: bitcast i8* [[BYTE_OFFSET]] to %T15generic_structs13SingleDynamicV
179179
%5 = struct_element_addr %0 : $*ComplexDynamic<A, B>, #ComplexDynamic.c
180180
%c = struct_element_addr %5 : $*SingleDynamic<B>, #SingleDynamic.x
181181

182-
// CHECK: [[METADATA:%.*]] = bitcast %swift.type* {{%.*}} to i64*
183-
// CHECK: [[FIELD_OFFSET_VECTOR:%.*]] = getelementptr inbounds i64, i64* [[METADATA]], i64 4
184-
// CHECK: [[FIELD_OFFSET_ADDR:%.*]] = getelementptr inbounds i64, i64* [[FIELD_OFFSET_VECTOR]], i32 4
185-
// CHECK: [[FIELD_OFFSET:%.*]] = load i64, i64* [[FIELD_OFFSET_ADDR]], align 8
182+
// CHECK: [[METADATA:%.*]] = bitcast %swift.type* {{%.*}} to i32*
183+
// CHECK: [[FIELD_OFFSET_VECTOR:%.*]] = getelementptr inbounds i32, i32* [[METADATA]], i64 8
184+
// CHECK: [[FIELD_OFFSET_ADDR:%.*]] = getelementptr inbounds i32, i32* [[FIELD_OFFSET_VECTOR]], i32 4
185+
// CHECK: [[FIELD_OFFSET:%.*]] = load i32, i32* [[FIELD_OFFSET_ADDR]], align 8
186186
// CHECK: [[BYTES:%.*]] = bitcast %T15generic_structs14ComplexDynamicV* %0 to i8*
187-
// CHECK: [[BYTE_OFFSET:%.*]] = getelementptr inbounds i8, i8* [[BYTES]], i64 [[FIELD_OFFSET]]
187+
// CHECK: [[BYTE_OFFSET:%.*]] = getelementptr inbounds i8, i8* [[BYTES]], i32 [[FIELD_OFFSET]]
188188
// CHECK: bitcast i8* [[BYTE_OFFSET]] to %T15generic_structs7CharethV
189189
%d = struct_element_addr %0 : $*ComplexDynamic<A, B>, #ComplexDynamic.d
190190
copy_addr %a to %1 : $*Byteful
@@ -205,10 +205,10 @@ entry(%0 : $*ComplexDynamic<A, B>, %1 : $*Byteful, %2 : $*A, %3 : $*B, %4 : $*Ch
205205
// CHECK-LABEL: define{{( protected)?}} internal swiftcc %swift.metadata_response @"$S15generic_structs13SingleDynamicVMr"
206206
// CHECK-SAME: (%swift.type* [[METADATA:%.*]], i8*, i8**) {{.*}} {
207207
// Lay out fields.
208-
// CHECK: [[T0:%.*]] = bitcast %swift.type* [[METADATA]] to i64*
209-
// CHECK: [[T1:%.*]] = getelementptr inbounds i64, i64* [[T0]], i64 3
208+
// CHECK: [[T0:%.*]] = bitcast %swift.type* [[METADATA]] to i32*
209+
// CHECK: [[T1:%.*]] = getelementptr inbounds i32, i32* [[T0]], i64 6
210210
// CHECK: [[T2:%.*]] = getelementptr inbounds i8**, i8*** [[TYPES:%.*]], i32 0
211-
// CHECK: call void @swift_initStructMetadata(%swift.type* [[METADATA]], i64 0, i64 1, i8*** [[TYPES]], i64* [[T1]])
211+
// CHECK: call void @swift_initStructMetadata(%swift.type* [[METADATA]], i64 0, i64 1, i8*** [[TYPES]], i32* [[T1]])
212212
// CHECK: ret %swift.metadata_response
213213
// CHECK: }
214214

test/IRGen/generic_structs.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -assume-parsing-unqualified-ownership-sil -primary-file %s -emit-ir | %FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-%target-ptrsize -DINT=i%target-ptrsize
1+
// RUN: %target-swift-frontend -assume-parsing-unqualified-ownership-sil -primary-file %s -emit-ir | %FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-%target-ptrsize -DINT=i%target-ptrsize -DINT_32=i32
22

33
struct A<T1, T2>
44
{
@@ -41,10 +41,10 @@ public struct GenericStruct<T : Proto> {
4141
// CHECK-LABEL: define{{.*}} swiftcc void @"$S15generic_structs13GenericStructVACyxGycfC"
4242
// CHECK: [[T0:%.*]] = call swiftcc %swift.metadata_response @"$S15generic_structs13GenericStructVMa"([[INT]] 0, %swift.type* %T, i8** %T.Proto)
4343
// CHECK: [[TYPE:%.*]] = extractvalue %swift.metadata_response [[T0]], 0
44-
// CHECK: [[PTR:%.*]] = bitcast %swift.type* [[TYPE]] to [[INT]]*
45-
// CHECK: [[FIELDOFFSETS:%.*]] = getelementptr inbounds [[INT]], [[INT]]* [[PTR]], [[INT]] 4
46-
// CHECK: [[FIELDOFFSET:%.*]] = getelementptr inbounds [[INT]], [[INT]]* [[FIELDOFFSETS]], i32 2
47-
// CHECK: [[OFFSET:%.*]] = load [[INT]], [[INT]]* [[FIELDOFFSET]]
48-
// CHECK: [[ADDROFOPT:%.*]] = getelementptr inbounds i8, i8* {{.*}}, [[INT]] [[OFFSET]]
44+
// CHECK: [[PTR:%.*]] = bitcast %swift.type* [[TYPE]] to [[INT_32]]*
45+
// CHECK: [[FIELDOFFSETS:%.*]] = getelementptr inbounds [[INT_32]], [[INT_32]]* [[PTR]], [[INT]] [[IDX:4|8]]
46+
// CHECK: [[FIELDOFFSET:%.*]] = getelementptr inbounds [[INT_32]], [[INT_32]]* [[FIELDOFFSETS]], i32 2
47+
// CHECK: [[OFFSET:%.*]] = load [[INT_32]], [[INT_32]]* [[FIELDOFFSET]]
48+
// CHECK: [[ADDROFOPT:%.*]] = getelementptr inbounds i8, i8* {{.*}}, [[INT_32]] [[OFFSET]]
4949
// CHECK: [[OPTPTR:%.*]] = bitcast i8* [[ADDROFOPT]] to %TSq*
5050
// CHECK: call %TSq* @"$SxSg15generic_structs5ProtoRzlWOb"(%TSq* {{.*}}, %TSq* [[OPTPTR]]

test/IRGen/keypaths.sil

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ sil_vtable C {}
220220
// -- struct with runtime-resolved offset
221221
// CHECK-SAME: <i32 0x00fffffe>,
222222
// CHECK-32-SAME: i32 20 }>
223-
// CHECK-64-SAME: i32 40 }>
223+
// CHECK-64-SAME: i32 36 }>
224224

225225
// CHECK-LABEL: define{{( protected)?}} swiftcc void @stored_property_fixed_offsets()
226226
sil @stored_property_fixed_offsets : $@convention(thin) () -> () {

test/IRGen/property_descriptor.sil

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public struct ExternalReabstractions<T> {
4343
sil_property #ExternalGeneric.ro <T: Comparable> (
4444
stored_property #ExternalGeneric.ro : $T)
4545
// CHECK-64: @"$S19property_descriptor15ExternalGenericV2rwxvpMV" ={{( protected)?}}{{( protected)?}} constant
46-
// CHECK-64-SAME: <{ <i32 0x00ff_fffe>, i32 40 }>, align 8
46+
// CHECK-64-SAME: <{ <i32 0x00ff_fffe>, i32 36 }>, align 8
4747
// CHECK-32: @"$S19property_descriptor15ExternalGenericV2rwxvpMV" ={{( protected)?}} constant
4848
// CHECK-32-SAME: <{ <i32 0x00ff_fffe>, i32 20 }>, align 4
4949
sil_property #ExternalGeneric.rw <T: Comparable> (

test/IRGen/struct_resilience.swift

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,12 @@ public func functionWithResilientTypesRectangle(_ r: Rectangle) {
6565
// CHECK: entry:
6666
// CHECK-NEXT: [[TMP:%.*]] = call swiftcc %swift.metadata_response @"$S16resilient_struct9RectangleVMa"([[INT]] 0)
6767
// CHECK-NEXT: [[METADATA:%.*]] = extractvalue %swift.metadata_response [[TMP]], 0
68-
// CHECK-NEXT: [[METADATA_ADDR:%.*]] = bitcast %swift.type* [[METADATA]] to [[INT]]*
69-
// CHECK-NEXT: [[FIELD_OFFSET_VECTOR:%.*]] = getelementptr inbounds [[INT]], [[INT]]* [[METADATA_ADDR]], [[INT]] 2
70-
// CHECK-NEXT: [[FIELD_OFFSET_PTR:%.*]] = getelementptr inbounds [[INT]], [[INT]]* [[FIELD_OFFSET_VECTOR]], i32 2
71-
// CHECK-NEXT: [[FIELD_OFFSET:%.*]] = load [[INT]], [[INT]]* [[FIELD_OFFSET_PTR]]
68+
// CHECK-NEXT: [[METADATA_ADDR:%.*]] = bitcast %swift.type* [[METADATA]] to i32*
69+
// CHECK-NEXT: [[FIELD_OFFSET_VECTOR:%.*]] = getelementptr inbounds i32, i32* [[METADATA_ADDR]], [[INT]] [[IDX:2|4]]
70+
// CHECK-NEXT: [[FIELD_OFFSET_PTR:%.*]] = getelementptr inbounds i32, i32* [[FIELD_OFFSET_VECTOR]], i32 2
71+
// CHECK-NEXT: [[FIELD_OFFSET:%.*]] = load i32, i32* [[FIELD_OFFSET_PTR]]
7272
// CHECK-NEXT: [[STRUCT_ADDR:%.*]] = bitcast %T16resilient_struct9RectangleV* %0 to i8*
73-
// CHECK-NEXT: [[FIELD_ADDR:%.*]] = getelementptr inbounds i8, i8* [[STRUCT_ADDR]], [[INT]] [[FIELD_OFFSET]]
73+
// CHECK-NEXT: [[FIELD_ADDR:%.*]] = getelementptr inbounds i8, i8* [[STRUCT_ADDR]], i32 [[FIELD_OFFSET]]
7474
// CHECK-NEXT: [[FIELD_PTR:%.*]] = bitcast i8* [[FIELD_ADDR]] to %TSi*
7575
// CHECK-NEXT: [[FIELD_PAYLOAD_PTR:%.*]] = getelementptr inbounds %TSi, %TSi* [[FIELD_PTR]], i32 0, i32 0
7676
// CHECK-NEXT: [[FIELD_PAYLOAD:%.*]] = load [[INT]], [[INT]]* [[FIELD_PAYLOAD_PTR]]
@@ -123,12 +123,12 @@ public struct StructWithResilientStorage {
123123
// CHECK-LABEL: define{{( protected)?}} swiftcc {{i32|i64}} @"$S17struct_resilience26StructWithResilientStorageV1nSivg"(%T17struct_resilience26StructWithResilientStorageV* {{.*}})
124124
// CHECK: [[TMP:%.*]] = call swiftcc %swift.metadata_response @"$S17struct_resilience26StructWithResilientStorageVMa"([[INT]] 0)
125125
// CHECK: [[METADATA:%.*]] = extractvalue %swift.metadata_response [[TMP]], 0
126-
// CHECK-NEXT: [[METADATA_ADDR:%.*]] = bitcast %swift.type* [[METADATA]] to [[INT]]*
127-
// CHECK-NEXT: [[FIELD_OFFSET_VECTOR:%.*]] = getelementptr inbounds [[INT]], [[INT]]* [[METADATA_ADDR]], [[INT]] 2
128-
// CHECK-NEXT: [[FIELD_OFFSET_PTR:%.*]] = getelementptr inbounds [[INT]], [[INT]]* [[FIELD_OFFSET_VECTOR]], i32 2
129-
// CHECK-NEXT: [[FIELD_OFFSET:%.*]] = load [[INT]], [[INT]]* [[FIELD_OFFSET_PTR]]
126+
// CHECK-NEXT: [[METADATA_ADDR:%.*]] = bitcast %swift.type* [[METADATA]] to i32*
127+
// CHECK-NEXT: [[FIELD_OFFSET_VECTOR:%.*]] = getelementptr inbounds i32, i32* [[METADATA_ADDR]], [[INT]] [[IDX:2|4]]
128+
// CHECK-NEXT: [[FIELD_OFFSET_PTR:%.*]] = getelementptr inbounds i32, i32* [[FIELD_OFFSET_VECTOR]], i32 2
129+
// CHECK-NEXT: [[FIELD_OFFSET:%.*]] = load i32, i32* [[FIELD_OFFSET_PTR]]
130130
// CHECK-NEXT: [[STRUCT_ADDR:%.*]] = bitcast %T17struct_resilience26StructWithResilientStorageV* %0 to i8*
131-
// CHECK-NEXT: [[FIELD_ADDR:%.*]] = getelementptr inbounds i8, i8* [[STRUCT_ADDR]], [[INT]] [[FIELD_OFFSET]]
131+
// CHECK-NEXT: [[FIELD_ADDR:%.*]] = getelementptr inbounds i8, i8* [[STRUCT_ADDR]], i32 [[FIELD_OFFSET]]
132132
// CHECK-NEXT: [[FIELD_PTR:%.*]] = bitcast i8* [[FIELD_ADDR]] to %TSi*
133133
// CHECK-NEXT: [[FIELD_PAYLOAD_PTR:%.*]] = getelementptr inbounds %TSi, %TSi* [[FIELD_PTR]], i32 0, i32 0
134134
// CHECK-NEXT: [[FIELD_PAYLOAD:%.*]] = load [[INT]], [[INT]]* [[FIELD_PAYLOAD_PTR]]
@@ -203,6 +203,6 @@ public func partialApplyOfResilientMethod(s: Size) {
203203
// CHECK: [[FIELD_4:%.*]] = getelementptr inbounds i8**, i8*** [[FIELDS_ADDR]], i32 3
204204
// CHECK: store i8** [[SIZE_AND_ALIGNMENT:%.*]], i8*** [[FIELD_4]]
205205

206-
// CHECK: call void @swift_initStructMetadata(%swift.type* {{.*}}, [[INT]] 256, [[INT]] 4, i8*** [[FIELDS_ADDR]], [[INT]]* {{.*}})
206+
// CHECK: call void @swift_initStructMetadata(%swift.type* {{.*}}, [[INT]] 256, [[INT]] 4, i8*** [[FIELDS_ADDR]], i32* {{.*}})
207207
// CHECK: store atomic %swift.type* {{.*}} @"$S17struct_resilience26StructWithResilientStorageVMf{{.*}}, %swift.type** @"$S17struct_resilience26StructWithResilientStorageVML" release,
208208
// CHECK: ret void

0 commit comments

Comments
 (0)