Skip to content

Commit 251093e

Browse files
authored
Merge pull request #14823 from rjmccall/no-instantiate-field-type-vector-slot
2 parents 4df75e8 + 46e5c07 commit 251093e

File tree

6 files changed

+14
-88
lines changed

6 files changed

+14
-88
lines changed

lib/IRGen/GenMeta.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3222,9 +3222,6 @@ namespace {
32223222

32233223
asImpl().addDependentData();
32243224

3225-
// Save a slot for the field type vector address to be instantiated into.
3226-
asImpl().addFieldTypeVectorReferenceSlot();
3227-
32283225
// Lay out the template data.
32293226
super::layout();
32303227

@@ -3281,10 +3278,6 @@ namespace {
32813278
super::addGenericWitnessTable(type, conf, std::forward<T>(args)...);
32823279
}
32833280

3284-
void addFieldTypeVectorReferenceSlot() {
3285-
B.addNullPointer(IGM.TypeMetadataPtrTy->getPointerTo());
3286-
}
3287-
32883281
// Can be overridden by subclassers to emit other dependent metadata.
32893282
void addDependentData() {}
32903283

test/IRGen/enum_value_semantics.sil

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ enum GenericFixedLayout<T> {
156156

157157
// CHECK-LABEL: @"$S20enum_value_semantics18GenericFixedLayoutOMP" = internal global <{{[{].*\* [}]}}> <{
158158
// CHECK: %swift.type* (%swift.type_pattern*, i8**)* @create_generic_metadata_GenericFixedLayout
159-
// CHECK: i32 40, i16 1, i16 16,
159+
// CHECK: i32 32, i16 1, i16 8,
160160
// CHECK: [16 x i8*] zeroinitializer,
161161
// CHECK: i8** getelementptr inbounds ([18 x i8*], [18 x i8*]* @"$S20enum_value_semantics18GenericFixedLayoutOWV", i32 0, i32 0),
162162
// CHECK: i64 2,

test/IRGen/field_type_vectors.sil

Lines changed: 0 additions & 67 deletions
This file was deleted.

test/IRGen/generic_classes.sil

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -320,20 +320,20 @@ entry(%c : $RootGeneric<Int32>):
320320
// CHECK-objc: [[METADATA_ARRAY:%.*]] = bitcast %swift.type* [[METADATA]] to i8**
321321
// CHECK-objc: [[T0:%.*]] = getelementptr inbounds i8*, i8** [[METADATA_ARRAY]], i32 0
322322
// CHECK-objc: [[T1:%.*]] = bitcast i8** [[T0]] to %objc_class**
323-
// CHECK-objc: [[T0:%.*]] = getelementptr inbounds i8*, i8** [[METADATA_ARRAY]], i32 -26
323+
// CHECK-objc: [[T0:%.*]] = getelementptr inbounds i8*, i8** [[METADATA_ARRAY]], i32 -25
324324
// CHECK-objc: [[METACLASS:%.*]] = bitcast i8** [[T0]] to %objc_class*
325325
// CHECK-objc: store %objc_class* [[METACLASS]], %objc_class** [[T1]], align 8
326326
// Set up the instance rodata pointer.
327327
// CHECK-objc: [[T0:%.*]] = getelementptr inbounds i8*, i8** [[METADATA_ARRAY]], i32 4
328328
// CHECK-objc: [[T1:%.*]] = bitcast i8** [[T0]] to i64*
329-
// CHECK-objc: [[RODATA:%.*]] = getelementptr inbounds i8*, i8** [[METADATA_ARRAY]], i32 -21
329+
// CHECK-objc: [[RODATA:%.*]] = getelementptr inbounds i8*, i8** [[METADATA_ARRAY]], i32 -20
330330
// CHECK-objc: [[T2:%.*]] = ptrtoint i8** [[RODATA]] to i64
331331
// CHECK-objc: [[T3:%.*]] = or i64 [[T2]], 1
332332
// CHECK-objc: store i64 [[T3]], i64* [[T1]], align 8
333333
// Set up the class rodata pointer.
334-
// CHECK-objc: [[T0:%.*]] = getelementptr inbounds i8*, i8** [[METADATA_ARRAY]], i32 -22
334+
// CHECK-objc: [[T0:%.*]] = getelementptr inbounds i8*, i8** [[METADATA_ARRAY]], i32 -21
335335
// CHECK-objc: [[T1:%.*]] = bitcast i8** [[T0]] to i64*
336-
// CHECK-objc: [[META_RODATA:%.*]] = getelementptr inbounds i8*, i8** [[METADATA_ARRAY]], i32 -12
336+
// CHECK-objc: [[META_RODATA:%.*]] = getelementptr inbounds i8*, i8** [[METADATA_ARRAY]], i32 -11
337337
// CHECK-objc: [[T2:%.*]] = ptrtoint i8** [[META_RODATA]] to i64
338338
// CHECK-objc: store i64 [[T2]], i64* [[T1]], align 8
339339
// Initialize our own dependent field offsets.

test/IRGen/generic_structs.sil

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ import Builtin
3939
// CHECK: @"$S15generic_structs13SingleDynamicVMP" = internal global <{ {{.*}} }> <{
4040
// -- template header
4141
// CHECK-SAME: %swift.type* (%swift.type_pattern*, i8**)* @create_generic_metadata_SingleDynamic,
42-
// CHECK-SAME: i32 48, i16 1, i16 16, [{{[0-9]+}} x i8*] zeroinitializer,
42+
// CHECK-SAME: i32 40, i16 1, i16 8, [{{[0-9]+}} x i8*] zeroinitializer,
4343
// -- vwtable pointer
4444
// CHECK-SAME: @"$S15generic_structs13SingleDynamicVWV"
4545
// -- address point

test/IRGen/generic_types.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010

1111
// CHECK-LABEL: @"$S13generic_types1ACMP" = internal global
1212
// CHECK: %swift.type* (%swift.type_pattern*, i8**)* @create_generic_metadata_A,
13-
// CHECK-native-SAME: i32 104,
14-
// CHECK-objc-SAME: i32 288,
13+
// CHECK-native-SAME: i32 96,
14+
// CHECK-objc-SAME: i32 280,
1515
// CHECK-SAME: i16 1,
16-
// CHECK-native-SAME: i16 24,
17-
// CHECK-objc-SAME: i16 208,
16+
// CHECK-native-SAME: i16 16,
17+
// CHECK-objc-SAME: i16 200,
1818
// CHECK-SAME: [{{[0-9]+}} x i8*] zeroinitializer,
1919
// CHECK-SAME: void ([[A]]*)* @"$S13generic_types1ACfD",
2020
// CHECK-SAME: i8** @"$SBoWV",
@@ -39,11 +39,11 @@
3939

4040
// CHECK-LABEL: @"$S13generic_types1BCMP" = internal global
4141
// CHECK-SAME: %swift.type* (%swift.type_pattern*, i8**)* @create_generic_metadata_B,
42-
// CHECK-native-SAME: i32 104,
43-
// CHECK-objc-SAME: i32 288,
42+
// CHECK-native-SAME: i32 96,
43+
// CHECK-objc-SAME: i32 280,
4444
// CHECK-SAME: i16 1,
45-
// CHECK-native-SAME: i16 24,
46-
// CHECK-objc-SAME: i16 208,
45+
// CHECK-native-SAME: i16 16,
46+
// CHECK-objc-SAME: i16 200,
4747
// CHECK-SAME: [{{[0-9]+}} x i8*] zeroinitializer,
4848
// CHECK-SAME: void ([[B]]*)* @"$S13generic_types1BCfD",
4949
// CHECK-SAME: i8** @"$SBoWV",

0 commit comments

Comments
 (0)