Skip to content

Commit cdcf387

Browse files
committed
---
yaml --- r: 269311 b: refs/heads/tensorflow-merge c: 0902741 h: refs/heads/master i: 269309: 1df8d57 269307: b31f89d 269303: 68665e6 269295: bbee9f3 269279: 41e475a 269247: 5a5a5df 269183: dd77c3d 269055: a616ce2 268799: 28276e2 268287: f50744e
1 parent 2a335a5 commit cdcf387

13 files changed

+92
-92
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1128,4 +1128,4 @@ refs/tags/swift-4.2.1-RELEASE: 02a6ca969ea1387475b6caeb69c31186df7d30b6
11281128
refs/tags/swift-DEVELOPMENT-SNAPSHOT-2018-11-01-a: 3b0299288f8287094b9ef587f46df54f42a347af
11291129
refs/heads/5.0-add-libcxx-and-clang-tools-extra: eb6e6f9b0a551e7804e96d0dac83add11ec73977
11301130
refs/heads/Fix-DataCreateSmall: e15aff31b7406a5b2dadac9d7810941cec85035a
1131-
refs/heads/tensorflow-merge: fcb52172fc2906b6003a12b327c9b6acd32bcd0f
1131+
refs/heads/tensorflow-merge: 09027413bcf04ba48ccaf7b4ac2d31a546c3e963

branches/tensorflow-merge/lib/IRGen/ClassMetadataVisitor.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,6 @@ template <class Impl> class ClassMetadataVisitor
123123
if (IGM.isResilient(theClass, ResilienceExpansion::Maximal))
124124
return;
125125

126-
// Add vtable entries.
127-
asImpl().addVTableEntries(theClass);
128-
129126
// A class only really *needs* a field-offset vector in the
130127
// metadata if:
131128
// - it's in a generic context and
@@ -145,6 +142,9 @@ template <class Impl> class ClassMetadataVisitor
145142
addFieldEntries(field);
146143
}
147144
asImpl().noteEndOfFieldOffsets(theClass);
145+
146+
// Add vtable entries.
147+
asImpl().addVTableEntries(theClass);
148148
}
149149

150150
private:

branches/tensorflow-merge/test/IRGen/class_metadata.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ class A {}
2424
// Field count.
2525
// CHECK-SAME: i32 0,
2626
// Field offset vector offset.
27-
// CHECK-32-SAME: i32 14,
28-
// CHECK-64-SAME: i32 11,
27+
// CHECK-32-SAME: i32 13,
28+
// CHECK-64-SAME: i32 10,
2929
// V-table offset.
3030
// CHECK-32-SAME: i32 13,
3131
// CHECK-64-SAME: i32 10,

branches/tensorflow-merge/test/IRGen/class_resilience.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
// -- num fields:
5353
// CHECK-SAME: i32 1,
5454
// -- field offset vector offset:
55-
// CHECK-SAME: i32 3,
55+
// CHECK-SAME: i32 0,
5656
// -- superclass:
5757
// CHECK-SAME: @"got.$s15resilient_class22ResilientOutsideParentCMn"
5858
// -- singleton metadata initialization cache:
@@ -357,7 +357,7 @@ extension ResilientGenericOutsideParent {
357357
// CHECK: [[ADDR:%.*]] = getelementptr inbounds %T16class_resilience21ResilientGenericChildC, %T16class_resilience21ResilientGenericChildC* %0, i32 0, i32 0, i32 0
358358
// CHECK-NEXT: [[ISA:%.*]] = load %swift.type*, %swift.type** [[ADDR]]
359359
// CHECK-NEXT: [[BASE:%.*]] = load [[INT]], [[INT]]* getelementptr inbounds ([[BOUNDS]], [[BOUNDS]]* @"$s16class_resilience21ResilientGenericChildCMo", i32 0, i32 0)
360-
// CHECK-NEXT: [[METADATA_OFFSET:%.*]] = add [[INT]] [[BASE]], {{16|32}}
360+
// CHECK-NEXT: [[METADATA_OFFSET:%.*]] = add [[INT]] [[BASE]], {{4|8}}
361361
// CHECK-NEXT: [[ISA_ADDR:%.*]] = bitcast %swift.type* [[ISA]] to i8*
362362
// CHECK-NEXT: [[FIELD_OFFSET_TMP:%.*]] = getelementptr inbounds i8, i8* [[ISA_ADDR]], [[INT]] [[METADATA_OFFSET]]
363363
// CHECK-NEXT: [[FIELD_OFFSET_ADDR:%.*]] = bitcast i8* [[FIELD_OFFSET_TMP]] to [[INT]]*
@@ -401,7 +401,7 @@ extension ResilientGenericOutsideParent {
401401
// CHECK: entry:
402402
// CHECK-NEXT: [[FIELDS:%.*]] = alloca [3 x i8**]
403403
// CHECK-NEXT: [[METADATA_ADDR:%.*]] = bitcast %swift.type* %0 to [[INT]]*
404-
// CHECK-NEXT: [[FIELDS_DEST:%.*]] = getelementptr inbounds [[INT]], [[INT]]* [[METADATA_ADDR]], [[INT]] {{11|14}}
404+
// CHECK-NEXT: [[FIELDS_DEST:%.*]] = getelementptr inbounds [[INT]], [[INT]]* [[METADATA_ADDR]], [[INT]] {{10|13}}
405405
// CHECK-NEXT: [[FIELDS_ADDR:%.*]] = bitcast [3 x i8**]* [[FIELDS]] to i8*
406406
// CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 {{12|24}}, i8* [[FIELDS_ADDR]])
407407
// CHECK-NEXT: [[FIELDS_PTR:%.*]] = getelementptr inbounds [3 x i8**], [3 x i8**]* [[FIELDS]], i32 0, i32 0
@@ -449,7 +449,7 @@ extension ResilientGenericOutsideParent {
449449
// CHECK: entry:
450450
// CHECK-NEXT: [[FIELDS:%.*]] = alloca [2 x i8**]
451451
// CHECK-NEXT: [[METADATA_ADDR:%.*]] = bitcast %swift.type* %0 to [[INT]]*
452-
// CHECK-NEXT: [[FIELDS_DEST:%.*]] = getelementptr inbounds [[INT]], [[INT]]* [[METADATA_ADDR]], [[INT]] {{11|14}}
452+
// CHECK-NEXT: [[FIELDS_DEST:%.*]] = getelementptr inbounds [[INT]], [[INT]]* [[METADATA_ADDR]], [[INT]] {{10|13}}
453453
// CHECK-NEXT: [[FIELDS_ADDR:%.*]] = bitcast [2 x i8**]* [[FIELDS]] to i8*
454454
// CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 {{8|16}}, i8* [[FIELDS_ADDR]])
455455
// CHECK-NEXT: [[FIELDS_PTR:%.*]] = getelementptr inbounds [2 x i8**], [2 x i8**]* [[FIELDS]], i32 0, i32 0
@@ -516,7 +516,7 @@ extension ResilientGenericOutsideParent {
516516
// CHECK: [[ISA_ADDR:%.*]] = getelementptr inbounds %T16class_resilience14ResilientChildC, %T16class_resilience14ResilientChildC* %1, i32 0, i32 0, i32 0
517517
// CHECK-NEXT: [[ISA:%.*]] = load %swift.type*, %swift.type** [[ISA_ADDR]]
518518
// CHECK-NEXT: [[BASE:%.*]] = load [[INT]], [[INT]]* getelementptr inbounds ([[BOUNDS]], [[BOUNDS]]* @"$s16class_resilience14ResilientChildCMo", i32 0, i32 0)
519-
// CHECK-NEXT: [[METADATA_OFFSET:%.*]] = add [[INT]] [[BASE]], {{4|8}}
519+
// CHECK-NEXT: [[METADATA_OFFSET:%.*]] = add [[INT]] [[BASE]], {{8|16}}
520520
// CHECK-NEXT: [[METADATA_BYTES:%.*]] = bitcast %swift.type* [[ISA]] to i8*
521521
// CHECK-NEXT: [[VTABLE_OFFSET_TMP:%.*]] = getelementptr inbounds i8, i8* [[METADATA_BYTES]], [[INT]] [[METADATA_OFFSET]]
522522
// CHECK-NEXT: [[VTABLE_OFFSET_ADDR:%.*]] = bitcast i8* [[VTABLE_OFFSET_TMP]] to void (i32, %T16class_resilience14ResilientChildC*)**

branches/tensorflow-merge/test/IRGen/class_resilience_objc.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,9 @@ public class GenericObjCSubclass<T> : NSCoder {
7171

7272
// CHECK-NEXT: [[ISA_ADDR:%.*]] = bitcast %swift.type* [[ISA]] to [[INT]]*
7373

74-
// CHECK-32-NEXT: [[FIELD_OFFSET_ADDR:%.*]] = getelementptr inbounds [[INT]], [[INT]]* [[ISA_ADDR]], [[INT]] 16
74+
// CHECK-32-NEXT: [[FIELD_OFFSET_ADDR:%.*]] = getelementptr inbounds [[INT]], [[INT]]* [[ISA_ADDR]], [[INT]] 15
7575

76-
// CHECK-64-NEXT: [[FIELD_OFFSET_ADDR:%.*]] = getelementptr inbounds [[INT]], [[INT]]* [[ISA_ADDR]], [[INT]] 13
76+
// CHECK-64-NEXT: [[FIELD_OFFSET_ADDR:%.*]] = getelementptr inbounds [[INT]], [[INT]]* [[ISA_ADDR]], [[INT]] 12
7777

7878
// CHECK-NEXT: [[FIELD_OFFSET:%.*]] = load [[INT]], [[INT]]* [[FIELD_OFFSET_ADDR:%.*]]
7979
// CHECK-NEXT: [[OBJECT:%.*]] = bitcast %T21class_resilience_objc19GenericObjCSubclassC* %0 to i8*

branches/tensorflow-merge/test/IRGen/completely_fragile_class_layout.sil

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ bb0(%0 : @guaranteed $ClassWithResilientField):
216216
// CHECK: entry:
217217
// CHECK-NEXT: [[FIELDS:%.*]] = alloca [3 x i8**]
218218
// CHECK-NEXT: [[METADATA_ADDR:%.*]] = bitcast %swift.type* %0 to [[INT]]*
219-
// CHECK-NEXT: [[FIELDS_DEST:%.*]] = getelementptr inbounds [[INT]], [[INT]]* [[METADATA_ADDR]], [[INT]] {{11|14}}
219+
// CHECK-NEXT: [[FIELDS_DEST:%.*]] = getelementptr inbounds [[INT]], [[INT]]* [[METADATA_ADDR]], [[INT]] {{10|13}}
220220
// CHECK-NEXT: [[FIELDS_ADDR:%.*]] = bitcast [3 x i8**]* [[FIELDS]] to i8*
221221
// CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 {{12|24}}, i8* [[FIELDS_ADDR]])
222222
// CHECK-NEXT: [[FIELDS_PTR:%.*]] = getelementptr inbounds [3 x i8**], [3 x i8**]* [[FIELDS]], i32 0, i32 0

branches/tensorflow-merge/test/IRGen/generic_classes.sil

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ import Swift
2828
// -- num fields
2929
// CHECK-SAME: i32 3,
3030
// -- field offset vector offset
31-
// CHECK-SAME: i32 15,
31+
// CHECK-SAME: i32 11,
3232
// -- template instantiation cache
3333
// CHECK-SAME: [16 x i8*]* @"$s15generic_classes11RootGenericCMI"
3434
// -- template instantiation pattern
3535
// CHECK-SAME: @"$s15generic_classes11RootGenericCMP"
3636
// -- generic parameters, requirements, key arguments, extra arguments
3737
// CHECK-SAME: i16 1, i16 0, i16 1, i16 0
3838
// -- vtable offset
39-
// CHECK-SAME: i32 11,
39+
// CHECK-SAME: i32 14,
4040
// -- vtable size
4141
// CHECK-SAME: i32 4
4242
// CHECK-SAME: }
@@ -86,7 +86,7 @@ import Swift
8686
// -- num fields
8787
// CHECK-SAME: i32 3,
8888
// -- -- field offset vector offset
89-
// CHECK-SAME: i32 11,
89+
// CHECK-SAME: i32 10,
9090
// CHECK-SAME: }>
9191

9292
// CHECK: @"$s15generic_classes14RootNonGenericCMf" = internal global <{ {{.*}} }> <{
@@ -274,7 +274,7 @@ entry(%c : @unowned $RootGeneric<F>):
274274
// RootGeneric.y has dependent layout; load the offset from the metadata
275275
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @RootGeneric_concrete_fragile_dependent_member_access_y
276276
// CHECK: [[TYPE_METADATA_ARRAY:%.*]] = bitcast %swift.type* {{%.*}} to i64*
277-
// CHECK: [[Y_OFFSET_ADDR:%.*]] = getelementptr inbounds i64, i64* [[TYPE_METADATA_ARRAY]], i64 16
277+
// CHECK: [[Y_OFFSET_ADDR:%.*]] = getelementptr inbounds i64, i64* [[TYPE_METADATA_ARRAY]], i64 12
278278
// CHECK: [[Y_OFFSET:%.*]] = load i64, i64* [[Y_OFFSET_ADDR]], align 8
279279
// CHECK: [[CLASS_BYTE_ARRAY:%.*]] = bitcast [[ROOTGENERIC]]* {{%.*}} to i8*
280280
// CHECK: [[Y_ADDR:%.*]] = getelementptr inbounds i8, i8* [[CLASS_BYTE_ARRAY]], i64 [[Y_OFFSET]]
@@ -301,7 +301,7 @@ entry(%z : @trivial $*Int, %c : @unowned $RootGeneric<Int>):
301301
// RootGeneric.z has dependent layout; load the offset from the metadata
302302
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc i8 @RootGeneric_concrete_fragile_dependent_member_access_z
303303
// CHECK: [[TYPE_METADATA_ARRAY:%.*]] = bitcast %swift.type* {{%.*}} to i64*
304-
// CHECK: [[Z_OFFSET_ADDR:%.*]] = getelementptr inbounds i64, i64* [[TYPE_METADATA_ARRAY]], i64 17
304+
// CHECK: [[Z_OFFSET_ADDR:%.*]] = getelementptr inbounds i64, i64* [[TYPE_METADATA_ARRAY]], i64 13
305305
// CHECK: [[Z_OFFSET:%.*]] = load i64, i64* [[Z_OFFSET_ADDR]], align 8
306306
// CHECK: [[CLASS_BYTE_ARRAY:%.*]] = bitcast [[ROOTGENERIC]]* {{%.*}} to i8*
307307
// CHECK: [[Z_ADDR:%.*]] = getelementptr inbounds i8, i8* [[CLASS_BYTE_ARRAY]], i64 [[Z_OFFSET]]
@@ -371,7 +371,7 @@ entry(%c : $RootGeneric<Int32>):
371371

372372
// Initialize our own dependent field offsets.
373373
// CHECK: [[METADATA_ARRAY:%.*]] = bitcast %swift.type* [[METADATA]] to i64*
374-
// CHECK: [[OFFSETS:%.*]] = getelementptr inbounds i64, i64* [[METADATA_ARRAY]], i64 23
374+
// CHECK: [[OFFSETS:%.*]] = getelementptr inbounds i64, i64* [[METADATA_ARRAY]], i64 20
375375
// CHECK: [[FIELDS_ADDR:%.*]] = getelementptr inbounds [1 x i8**], [1 x i8**]* %classFields, i32 0, i32 0
376376
// CHECK: [[T0:%.*]] = call{{( tail)?}} swiftcc %swift.metadata_response @swift_checkMetadataState(i64 319, %swift.type* %B)
377377
// CHECK: [[B_CHECKED:%.*]] = extractvalue %swift.metadata_response [[T0]], 0

branches/tensorflow-merge/test/IRGen/generic_types.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
// -- num fields
2727
// CHECK-SAME: i32 1,
2828
// -- field offset vector offset
29-
// CHECK-SAME: i32 16,
29+
// CHECK-SAME: i32 11,
3030
// -- instantiation cache
3131
// CHECK-SAME: @"$s13generic_types1ACMI"
3232
// -- instantiation pattern

branches/tensorflow-merge/test/IRGen/mixed_mode_class_with_unimportable_fields.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,13 @@ public func accessFinalFields(ofSub holder: SubButtHolder) -> (Any, Any, Any) {
7979

8080
// CHECK-LABEL: define {{(protected )?}}{{(dllexport )?}}swiftcc void @"$s4main12invokeMethod2onyAA13SubButtHolderC_tF"
8181
public func invokeMethod(on holder: SubButtHolder) {
82-
// CHECK-64: [[IMPL_ADDR:%.*]] = getelementptr inbounds {{.*}}, [[WORD]] 10
83-
// CHECK-32: [[IMPL_ADDR:%.*]] = getelementptr inbounds {{.*}}, [[WORD]] 13
82+
// CHECK-64: [[IMPL_ADDR:%.*]] = getelementptr inbounds {{.*}}, [[WORD]] 13
83+
// CHECK-32: [[IMPL_ADDR:%.*]] = getelementptr inbounds {{.*}}, [[WORD]] 16
8484
// CHECK: [[IMPL:%.*]] = load {{.*}} [[IMPL_ADDR]]
8585
// CHECK: call swiftcc void [[IMPL]]
8686
holder.virtual()
87-
// CHECK-64: [[IMPL_ADDR:%.*]] = getelementptr inbounds {{.*}}, [[WORD]] 15
88-
// CHECK-32: [[IMPL_ADDR:%.*]] = getelementptr inbounds {{.*}}, [[WORD]] 18
87+
// CHECK-64: [[IMPL_ADDR:%.*]] = getelementptr inbounds {{.*}}, [[WORD]] 16
88+
// CHECK-32: [[IMPL_ADDR:%.*]] = getelementptr inbounds {{.*}}, [[WORD]] 19
8989
// CHECK: [[IMPL:%.*]] = load {{.*}} [[IMPL_ADDR]]
9090
// CHECK: call swiftcc void [[IMPL]]
9191
holder.subVirtual()

branches/tensorflow-merge/test/IRGen/objc_class_export.swift

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -16,50 +16,50 @@
1616
// CHECK-DAG: [[OBJC:%objc_object]] = type opaque
1717

1818
// CHECK: @"OBJC_METACLASS_$__TtC17objc_class_export3Foo" = hidden global %objc_class {
19-
// CHECK: %objc_class* @"OBJC_METACLASS_$_{{(_TtCs12_)?}}SwiftObject",
20-
// CHECK: %objc_class* @"OBJC_METACLASS_$_{{(_TtCs12_)?}}SwiftObject",
21-
// CHECK: %swift.opaque* @_objc_empty_cache,
22-
// CHECK: %swift.opaque* null,
23-
// CHECK: i64 ptrtoint ({{.*}}* @_METACLASS_DATA__TtC17objc_class_export3Foo to i64)
24-
// CHECK: }
19+
// CHECK-SAME: %objc_class* @"OBJC_METACLASS_$_{{(_TtCs12_)?}}SwiftObject",
20+
// CHECK-SAME: %objc_class* @"OBJC_METACLASS_$_{{(_TtCs12_)?}}SwiftObject",
21+
// CHECK-SAME: %swift.opaque* @_objc_empty_cache,
22+
// CHECK-SAME: %swift.opaque* null,
23+
// CHECK-SAME: i64 ptrtoint ({{.*}}* @_METACLASS_DATA__TtC17objc_class_export3Foo to i64)
24+
// CHECK-SAME: }
2525
// CHECK: [[FOO_NAME:@.*]] = private unnamed_addr constant [28 x i8] c"_TtC17objc_class_export3Foo\00"
2626
// CHECK: @_METACLASS_DATA__TtC17objc_class_export3Foo = private constant {{.*\*}} } {
27-
// CHECK: i32 129,
28-
// CHECK: i32 40,
29-
// CHECK: i32 40,
30-
// CHECK: i32 0,
31-
// CHECK: i8* null,
32-
// CHECK: i8* getelementptr inbounds ([{{[0-9]+}} x i8], [{{[0-9]+}} x i8]* [[FOO_NAME]], i64 0, i64 0),
33-
// CHECK: @_CLASS_METHODS__TtC17objc_class_export3Foo,
34-
// CHECK: i8* null,
35-
// CHECK: i8* null,
36-
// CHECK: i8* null,
37-
// CHECK: i8* null
38-
// CHECK: }, section "__DATA, __objc_const", align 8
27+
// CHECK-SAME: i32 129,
28+
// CHECK-SAME: i32 40,
29+
// CHECK-SAME: i32 40,
30+
// CHECK-SAME: i32 0,
31+
// CHECK-SAME: i8* null,
32+
// CHECK-SAME: i8* getelementptr inbounds ([{{[0-9]+}} x i8], [{{[0-9]+}} x i8]* [[FOO_NAME]], i64 0, i64 0),
33+
// CHECK-SAME: @_CLASS_METHODS__TtC17objc_class_export3Foo,
34+
// CHECK-SAME: i8* null,
35+
// CHECK-SAME: i8* null,
36+
// CHECK-SAME: i8* null,
37+
// CHECK-SAME: i8* null
38+
// CHECK-SAME: }, section "__DATA, __objc_const", align 8
3939
// CHECK: @_DATA__TtC17objc_class_export3Foo = private constant {{.*\*}} } {
40-
// CHECK: i32 128,
41-
// CHECK: i32 16,
42-
// CHECK: i32 24,
43-
// CHECK: i32 0,
44-
// CHECK: i8* null,
45-
// CHECK: i8* getelementptr inbounds ([{{[0-9]+}} x i8], [{{[0-9]+}} x i8]* [[FOO_NAME]], i64 0, i64 0),
46-
// CHECK: { i32, i32, [6 x { i8*, i8*, i8* }] }* @_INSTANCE_METHODS__TtC17objc_class_export3Foo,
47-
// CHECK: i8* null,
48-
// CHECK: @_IVARS__TtC17objc_class_export3Foo,
49-
// CHECK: i8* null,
50-
// CHECK: _PROPERTIES__TtC17objc_class_export3Foo
51-
// CHECK: }, section "__DATA, __objc_const", align 8
52-
// CHECK: @"$s17objc_class_export3FooCMf" = internal global <{{.*i64}} }> <{
53-
// CHECK: void ([[FOO]]*)* @"$s17objc_class_export3FooCfD",
54-
// CHECK: i8** @"$sBOWV",
55-
// CHECK: i64 ptrtoint (%objc_class* @"OBJC_METACLASS_$__TtC17objc_class_export3Foo" to i64),
56-
// CHECK: %objc_class* @"OBJC_CLASS_$_{{(_TtCs12_)?}}SwiftObject",
57-
// CHECK: %swift.opaque* @_objc_empty_cache,
58-
// CHECK: %swift.opaque* null,
59-
// CHECK: i64 add (i64 ptrtoint ({{.*}}* @_DATA__TtC17objc_class_export3Foo to i64), i64 1),
60-
// CHECK: [[FOO]]* (%swift.type*)* @"$s17objc_class_export3FooC6createACyFZ",
61-
// CHECK: void (double, double, double, double, [[FOO]]*)* @"$s17objc_class_export3FooC10drawInRect5dirtyySo6NSRectV_tF"
62-
// CHECK: }>, section "__DATA,__objc_data, regular"
40+
// CHECK-SAME: i32 128,
41+
// CHECK-SAME: i32 16,
42+
// CHECK-SAME: i32 24,
43+
// CHECK-SAME: i32 0,
44+
// CHECK-SAME: i8* null,
45+
// CHECK-SAME: i8* getelementptr inbounds ([{{[0-9]+}} x i8], [{{[0-9]+}} x i8]* [[FOO_NAME]], i64 0, i64 0),
46+
// CHECK-SAME: { i32, i32, [6 x { i8*, i8*, i8* }] }* @_INSTANCE_METHODS__TtC17objc_class_export3Foo,
47+
// CHECK-SAME: i8* null,
48+
// CHECK-SAME: @_IVARS__TtC17objc_class_export3Foo,
49+
// CHECK-SAME: i8* null,
50+
// CHECK-SAME: _PROPERTIES__TtC17objc_class_export3Foo
51+
// CHECK-SAME: }, section "__DATA, __objc_const", align 8
52+
// CHECK: @"$s17objc_class_export3FooCMf" = internal global <{{.*}} }> <{
53+
// CHECK-SAME: void ([[FOO]]*)* @"$s17objc_class_export3FooCfD",
54+
// CHECK-SAME: i8** @"$sBOWV",
55+
// CHECK-SAME: i64 ptrtoint (%objc_class* @"OBJC_METACLASS_$__TtC17objc_class_export3Foo" to i64),
56+
// CHECK-SAME: %objc_class* @"OBJC_CLASS_$_{{(_TtCs12_)?}}SwiftObject",
57+
// CHECK-SAME: %swift.opaque* @_objc_empty_cache,
58+
// CHECK-SAME: %swift.opaque* null,
59+
// CHECK-SAME: i64 add (i64 ptrtoint ({{.*}}* @_DATA__TtC17objc_class_export3Foo to i64), i64 1),
60+
// CHECK-SAME: [[FOO]]* (%swift.type*)* @"$s17objc_class_export3FooC6createACyFZ",
61+
// CHECK-SAME: void (double, double, double, double, [[FOO]]*)* @"$s17objc_class_export3FooC10drawInRect5dirtyySo6NSRectV_tF"
62+
// CHECK-SAME: }>, section "__DATA,__objc_data, regular"
6363
// -- TODO: The OBJC_CLASS symbol should reflect the qualified runtime name of
6464
// Foo.
6565
// CHECK: @"$s17objc_class_export3FooCN" = hidden alias %swift.type, bitcast (i64* getelementptr inbounds ({{.*}} @"$s17objc_class_export3FooCMf", i32 0, i32 2) to %swift.type*)

branches/tensorflow-merge/test/IRGen/objc_super.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ class GenericRuncer<T> : Gizmo {
9797
// CHECK: [[CLASS:%.*]] = and i64 [[ISA]], [[ISAMASK]]
9898
// CHECK: [[TY:%.*]] = inttoptr i64 [[CLASS]] to %swift.type*
9999
// CHECK: [[CAST:%.*]] = bitcast %swift.type* [[TY]] to i64*
100-
// CHECK: [[OFFSETADDR:%.*]] = getelementptr inbounds i64, i64* [[CAST]], i64 17
100+
// CHECK: [[OFFSETADDR:%.*]] = getelementptr inbounds i64, i64* [[CAST]], i64 11
101101
// CHECK: [[FIELDOFFSET:%.*]] = load i64, i64* [[OFFSETADDR]]
102102
// CHECK: [[BYTEADDR:%.*]] = bitcast %T10objc_super13GenericRuncerC* %0 to i8*
103103
// CHECK: [[FIELDADDR:%.*]] = getelementptr inbounds i8, i8* [[BYTEADDR]], i64 [[FIELDOFFSET]]

branches/tensorflow-merge/test/IRGen/subclass.swift

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,30 +10,30 @@
1010
// CHECK-DAG: [[INT:%TSi]] = type <{ i64 }>
1111
// CHECK-DAG: [[B:%T8subclass1BC]] = type <{ [[REF]], [[INT]], [[INT]], [[INT]] }>
1212

13-
// CHECK: @_DATA__TtC8subclass1A = private constant {{.*\* } }}{
14-
// CHECK: @"$s8subclass1ACMf" = internal global [[A_METADATA:<{.*i64 }>]] <{
15-
// CHECK: void ([[A]]*)* @"$s8subclass1ACfD",
16-
// CHECK: i8** @"$sBoWV",
17-
// CHECK: i64 ptrtoint ([[OBJC_CLASS]]* @"$s8subclass1ACMm" to i64),
18-
// CHECK: [[OBJC_CLASS]]* @"OBJC_CLASS_$_{{(_TtCs12_)?}}SwiftObject",
19-
// CHECK: [[OPAQUE]]* @_objc_empty_cache,
20-
// CHECK: [[OPAQUE]]* null,
21-
// CHECK: i64 add (i64 ptrtoint ({ {{.*}} }* @_DATA__TtC8subclass1A to i64), i64 1),
22-
// CHECK: i64 ([[A]]*)* @"$s8subclass1AC1fSiyF",
23-
// CHECK: [[A]]* ([[TYPE]]*)* @"$s8subclass1AC1gACyFZ"
24-
// CHECK: }>
25-
// CHECK: @_DATA__TtC8subclass1B = private constant {{.*\* } }}{
13+
// CHECK: @_DATA__TtC8subclass1A = private constant {{.* } }}{
14+
// CHECK: @"$s8subclass1ACMf" = internal global [[A_METADATA:<{.* }>]] <{
15+
// CHECK-SAME: void ([[A]]*)* @"$s8subclass1ACfD",
16+
// CHECK-SAME: i8** @"$sBoWV",
17+
// CHECK-SAME: i64 ptrtoint ([[OBJC_CLASS]]* @"$s8subclass1ACMm" to i64),
18+
// CHECK-SAME: [[OBJC_CLASS]]* @"OBJC_CLASS_$_{{(_TtCs12_)?}}SwiftObject",
19+
// CHECK-SAME: [[OPAQUE]]* @_objc_empty_cache,
20+
// CHECK-SAME: [[OPAQUE]]* null,
21+
// CHECK-SAME: i64 add (i64 ptrtoint ({ {{.*}} }* @_DATA__TtC8subclass1A to i64), i64 1),
22+
// CHECK-SAME: i64 ([[A]]*)* @"$s8subclass1AC1fSiyF",
23+
// CHECK-SAME: [[A]]* ([[TYPE]]*)* @"$s8subclass1AC1gACyFZ"
24+
// CHECK-SAME: }>
25+
// CHECK: @_DATA__TtC8subclass1B = private constant {{.* } }}{
2626
// CHECK: @"$s8subclass1BCMf" = internal global <{ {{.*}} }> <{
27-
// CHECK: void ([[B]]*)* @"$s8subclass1BCfD",
28-
// CHECK: i8** @"$sBoWV",
29-
// CHECK: i64 ptrtoint ([[OBJC_CLASS]]* @"$s8subclass1BCMm" to i64),
30-
// CHECK: [[TYPE]]* {{.*}} @"$s8subclass1ACMf",
31-
// CHECK: [[OPAQUE]]* @_objc_empty_cache,
32-
// CHECK: [[OPAQUE]]* null,
33-
// CHECK: i64 add (i64 ptrtoint ({ {{.*}} }* @_DATA__TtC8subclass1B to i64), i64 1),
34-
// CHECK: i64 ([[B]]*)* @"$s8subclass1BC1fSiyF",
35-
// CHECK: [[A]]* ([[TYPE]]*)* @"$s8subclass1AC1gACyFZ"
36-
// CHECK: }>
27+
// CHECK-SAME: void ([[B]]*)* @"$s8subclass1BCfD",
28+
// CHECK-SAME: i8** @"$sBoWV",
29+
// CHECK-SAME: i64 ptrtoint ([[OBJC_CLASS]]* @"$s8subclass1BCMm" to i64),
30+
// CHECK-SAME: [[TYPE]]* {{.*}} @"$s8subclass1ACMf",
31+
// CHECK-SAME: [[OPAQUE]]* @_objc_empty_cache,
32+
// CHECK-SAME: [[OPAQUE]]* null,
33+
// CHECK-SAME: i64 add (i64 ptrtoint ({ {{.*}} }* @_DATA__TtC8subclass1B to i64), i64 1),
34+
// CHECK-SAME: i64 ([[B]]*)* @"$s8subclass1BC1fSiyF",
35+
// CHECK-SAME: [[A]]* ([[TYPE]]*)* @"$s8subclass1AC1gACyFZ"
36+
// CHECK-SAME: }>
3737
// CHECK: @objc_classes = internal global [2 x i8*] [i8* {{.*}} @"$s8subclass1ACN" {{.*}}, i8* {{.*}} @"$s8subclass1BCN" {{.*}}]
3838

3939
class A {

branches/tensorflow-merge/test/Serialization/Recovery/typedefs.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ func testSymbols() {
3131

3232
// CHECK-IR-LABEL: define{{.*}} void @"$s8typedefs18testVTableBuilding4usery3Lib4UserC_tF
3333
public func testVTableBuilding(user: User) {
34-
// The important thing in this CHECK line is the "i64 30", which is the offset
34+
// The important thing in this CHECK line is the "i64 28", which is the offset
3535
// for the vtable slot for 'lastMethod()'. If the layout here
3636
// changes, please check that offset is still correct.
3737
// CHECK-IR-NOT: ret
38-
// CHECK-IR: getelementptr inbounds void (%T3Lib4UserC*)*, void (%T3Lib4UserC*)** %{{[0-9]+}}, {{i64 26|i32 29}}
38+
// CHECK-IR: getelementptr inbounds void (%T3Lib4UserC*)*, void (%T3Lib4UserC*)** %{{[0-9]+}}, {{i64 28|i32 31}}
3939
_ = user.lastMethod()
4040
} // CHECK-IR: ret void
4141

0 commit comments

Comments
 (0)