Skip to content

Commit 3b3b78e

Browse files
---
yaml --- r: 293471 b: refs/heads/tensorflow c: 74eb068 h: refs/heads/master i: 293469: cfc7908 293467: 761b77d 293463: 1f6308b 293455: e8762f4 293439: d344aab
1 parent ab02434 commit 3b3b78e

File tree

6 files changed

+31
-33
lines changed

6 files changed

+31
-33
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -816,7 +816,7 @@ refs/tags/swift-DEVELOPMENT-SNAPSHOT-2018-04-25-a: 22f738a831d43aff2b9c9773bcb65
816816
refs/tags/swift-DEVELOPMENT-SNAPSHOT-2018-05-08-a: 7d98cc16689baba5c8a3b90a9329bdcc1a12b4e9
817817
refs/heads/cherr42: a566ad54b073c2c56ac0a705d0a5bed9743135a5
818818
"refs/heads/codable_test_comment_fix": fc8f6824f7f347e1e8db55bff62db385c5728b5a
819-
refs/heads/tensorflow: 013b9bcf31ca8a5d43c41b45f2b2a6c3631a08fb
819+
refs/heads/tensorflow: 74eb0687c3daaf5b2cb658c80ca1d36784e91007
820820
refs/tags/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-05-11-a: 8126fd7a652e2f70ad6d76505239e34fb2ef3e1a
821821
refs/tags/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-05-12-a: b3fd3dd84df6717f2e2e9df58c6d7e99fed57086
822822
refs/tags/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-05-13-a: 71135119579039dc321c5f65d870050fe36efda2

branches/tensorflow/stdlib/public/core/Builtin.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,11 @@ func _uncheckedUnsafeAssume(_ condition: Bool) {
312312
@usableFromInline
313313
@_silgen_name("_swift_objcClassUsesNativeSwiftReferenceCounting")
314314
internal func _usesNativeSwiftReferenceCounting(_ theClass: AnyClass) -> Bool
315+
316+
/// Returns the class of a non-tagged-pointer Objective-C object
317+
@_effects(readonly)
318+
@_silgen_name("_swift_classOfObjCHeapObject")
319+
internal func _swift_classOfObjCHeapObject(_ object: AnyObject) -> AnyClass
315320
#else
316321
@inlinable
317322
@inline(__always)

branches/tensorflow/stdlib/public/core/StringBridge.swift

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -125,11 +125,6 @@ private var kCFStringEncodingUTF8 : _swift_shims_CFStringEncoding {
125125
@inline(__always) get { return 0x8000100 }
126126
}
127127

128-
@_effects(readonly)
129-
private func _unsafeAddressOfCocoaStringClass(_ str: _CocoaString) -> UInt {
130-
return _swift_stdlib_unsafeAddressOfClass(str)
131-
}
132-
133128
internal enum _KnownCocoaString {
134129
case storage
135130
case shared
@@ -148,7 +143,7 @@ internal enum _KnownCocoaString {
148143
}
149144
#endif
150145

151-
switch _unsafeAddressOfCocoaStringClass(str) {
146+
switch unsafeBitCast(_swift_classOfObjCHeapObject(str), to: UInt.self) {
152147
case unsafeBitCast(__StringStorage.self, to: UInt.self):
153148
self = .storage
154149
case unsafeBitCast(__SharedStringStorage.self, to: UInt.self):

branches/tensorflow/stdlib/public/runtime/SwiftObject.mm

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,11 @@ static Class _swift_getObjCClassOfAllocated(const void *object) {
177177
class_getInstanceSize(cls), mask));
178178
}
179179

180+
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_API
181+
Class _swift_classOfObjCHeapObject(OpaqueValue *value) {
182+
return _swift_getObjCClassOfAllocated(value);
183+
}
184+
180185
SWIFT_CC(swift) SWIFT_RUNTIME_STDLIB_API
181186
NSString *swift_stdlib_getDescription(OpaqueValue *value,
182187
const Metadata *type);

branches/tensorflow/test/Interpreter/bridged_casts_folding.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-run-simple-swift | %FileCheck %s
1+
// RUN: %target-run-simple-swift(-Onone) | %FileCheck %s
22
// RUN: %target-run-simple-swift(-O) | %FileCheck -check-prefix=CHECK-OPT %s
33

44
// NOTE: We use FileCheck for the crashing test cases to make sure we crash for

branches/tensorflow/test/SILOptimizer/definite_init_failable_initializers_objc.swift

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// RUN: %target-swift-frontend -emit-sil -disable-objc-attr-requires-foundation-module %s | %FileCheck %s
22

33
// REQUIRES: objc_interop
4-
// REQUIRES: rdar49942212
54

65
import ObjectiveC
76

@@ -98,52 +97,46 @@ class Cat : FakeNSObject {
9897
// CHECK-NEXT: cond_br [[COND]], bb1, bb2
9998

10099
// CHECK: bb1:
101-
// CHECK-NEXT: br bb8
102-
103-
// CHECK: bb3:
104-
// CHECK: br bb5
105-
106-
// CHECK: bb4:
107-
// CHECK: br bb5
108-
109-
// CHECK: bb5
100+
// CHECK-NEXT: br [[ERROR_BRANCH:bb[0-9]+]]
101+
102+
// CHECK: bb{{[0-9]+}}:
110103
// CHECK: [[SELF_INIT:%.+]] = objc_method %2 : $Cat, #Cat.init!initializer.1.foreign : (Cat.Type) -> (Int, Bool) -> Cat?
111-
// CHECK: [[NEW_OPT_SELF:%.+]] = apply [[SELF_INIT]]({{%.+}}, {{%.+}}, %2) : $@convention(objc_method) (Int, ObjCBool, @owned Cat) -> @owned Optional<Cat>
104+
// CHECK: [[NEW_OPT_SELF:%.+]] = apply [[SELF_INIT]]({{%.+}}, {{%.+}}, {{%.+}}) : $@convention(objc_method) (Int, ObjCBool, @owned Cat) -> @owned Optional<Cat>
112105
// CHECK: [[COND:%.+]] = select_enum [[NEW_OPT_SELF]] : $Optional<Cat>
113-
// CHECK-NEXT: cond_br [[COND]], bb7, bb6
106+
// CHECK-NEXT: cond_br [[COND]], [[SUCCESS_BRANCH:bb[0-9]+]], [[RELEASE_THEN_ERROR_BRANCH:bb[0-9]+]]
114107

115-
// CHECK: bb6:
108+
// CHECK: [[RELEASE_THEN_ERROR_BRANCH]]:
116109
// CHECK-NEXT: release_value [[NEW_OPT_SELF]]
117-
// CHECK-NEXT: br bb8
110+
// CHECK-NEXT: br [[ERROR_BRANCH]]
118111

119-
// CHECK: bb7:
112+
// CHECK: [[SUCCESS_BRANCH]]:
120113
// CHECK-NEXT: [[NEW_SELF:%.+]] = unchecked_enum_data [[NEW_OPT_SELF]] : $Optional<Cat>, #Optional.some!enumelt.1
121114
// CHECK-NEXT: store [[NEW_SELF]] to [[SELF_BOX]] : $*Cat
122115
// TODO: Once we re-enable arbitrary take promotion, this retain and the associated destroy_addr will go away.
123116
// CHECK-NEXT: strong_retain [[NEW_SELF]]
124117
// CHECK-NEXT: [[RESULT:%.+]] = enum $Optional<Cat>, #Optional.some!enumelt.1, [[NEW_SELF]] : $Cat
125118
// CHECK-NEXT: destroy_addr [[SELF_BOX]]
126119
// CHECK-NEXT: dealloc_stack [[SELF_BOX]] : $*Cat
127-
// CHECK-NEXT: br bb12([[RESULT]] : $Optional<Cat>)
120+
// CHECK-NEXT: br [[RESULT_BRANCH:bb[0-9]+]]([[RESULT]] : $Optional<Cat>)
128121

129-
// CHECK: bb8:
122+
// CHECK: [[ERROR_BRANCH]]:
130123
// CHECK-NEXT: [[COND:%.+]] = load [[HAS_RUN_INIT_BOX]] : $*Builtin.Int1
131-
// CHECK-NEXT: cond_br [[COND]], bb9, bb10
124+
// CHECK-NEXT: cond_br [[COND]], [[ERROR_WITHOUT_DESTROY_BRANCH:bb[0-9]+]], [[ERROR_WITH_DESTROY_BRANCH:bb[0-9]+]]
132125

133-
// CHECK: bb9:
134-
// CHECK-NEXT: br bb11
126+
// CHECK: [[ERROR_WITHOUT_DESTROY_BRANCH]]:
127+
// CHECK-NEXT: br [[ERROR_CLEANUP_BRANCH:bb[0-9]+]]
135128

136-
// CHECK: bb10:
129+
// CHECK: [[ERROR_WITH_DESTROY_BRANCH]]:
137130
// CHECK-NEXT: [[MOST_DERIVED_TYPE:%.+]] = value_metatype $@thick Cat.Type, %2 : $Cat
138131
// CHECK-NEXT: dealloc_partial_ref %2 : $Cat, [[MOST_DERIVED_TYPE]] : $@thick Cat.Type
139-
// CHECK-NEXT: br bb11
132+
// CHECK-NEXT: br [[ERROR_CLEANUP_BRANCH]]
140133

141-
// CHECK: bb11:
134+
// CHECK: [[ERROR_CLEANUP_BRANCH]]:
142135
// CHECK-NEXT: dealloc_stack [[SELF_BOX]] : $*Cat
143136
// CHECK-NEXT: [[NIL_RESULT:%.+]] = enum $Optional<Cat>, #Optional.none!enumelt
144-
// CHECK-NEXT: br bb12([[NIL_RESULT]] : $Optional<Cat>)
137+
// CHECK-NEXT: br [[RESULT_BRANCH]]([[NIL_RESULT]] : $Optional<Cat>)
145138

146-
// CHECK: bb12([[RESULT:%.+]] : $Optional<Cat>):
139+
// CHECK: [[RESULT_BRANCH]]([[RESULT:%.+]] : $Optional<Cat>):
147140
// CHECK-NEXT: dealloc_stack [[HAS_RUN_INIT_BOX]] : $*Builtin.Int1
148141
// CHECK-NEXT: return [[RESULT]] : $Optional<Cat>
149142

0 commit comments

Comments
 (0)