Skip to content

Commit 994121e

Browse files
authored
Merge pull request #10861 from huonw/symbol-list-10
TBD: includes all symbols from a full build and test
2 parents a4c168e + 7d843f7 commit 994121e

File tree

8 files changed

+89
-50
lines changed

8 files changed

+89
-50
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
//===- SILGenMaterializeForSet.h - SILGen for materializeForSet -*- C++ -*-===//
2+
//
3+
// This source file is part of the Swift.org open source project
4+
//
5+
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
6+
// Licensed under Apache License v2.0 with Runtime Library Exception
7+
//
8+
// See https://swift.org/LICENSE.txt for license information
9+
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
10+
//
11+
//===----------------------------------------------------------------------===//
12+
13+
#include <string>
14+
15+
namespace swift {
16+
class ProtocolConformance;
17+
class FuncDecl;
18+
19+
namespace Lowering {
20+
/// \brief Compute the name of the callback inside an auto-generated
21+
/// materializeForSet accessor.
22+
///
23+
/// FIXME: this should just be a static function inside
24+
/// SILGenMaterializeForSet.cpp, but currently these closures end up public,
25+
/// so TBDGen wants to emit them.
26+
std::string getMaterializeForSetCallbackName(ProtocolConformance *conformance,
27+
FuncDecl *requirement);
28+
}
29+
}

lib/SILGen/SILGenMaterializeForSet.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,16 +171,15 @@
171171
#include "swift/SIL/SILArgument.h"
172172
#include "swift/SIL/SILUndef.h"
173173
#include "swift/SIL/TypeLowering.h"
174+
#include "swift/SILGen/SILGenMaterializeForSet.h"
174175
#include "llvm/Support/raw_ostream.h"
175176
#include "ASTVisitor.h"
176177
using namespace swift;
177178
using namespace Lowering;
178179

179-
namespace {
180-
181-
static std::string
182-
getMaterializeForSetCallbackName(ProtocolConformance *conformance,
183-
FuncDecl *requirement) {
180+
std::string
181+
Lowering::getMaterializeForSetCallbackName(ProtocolConformance *conformance,
182+
FuncDecl *requirement) {
184183

185184
DeclContext *dc = requirement;
186185
ClosureExpr closure(/*patterns*/ nullptr,
@@ -209,6 +208,8 @@ getMaterializeForSetCallbackName(ProtocolConformance *conformance,
209208
Mangle::ASTMangler::SymbolKind::Default);
210209
}
211210

211+
namespace {
212+
212213
/// A helper class for emitting materializeForSet.
213214
///
214215
/// The formal type of materializeForSet is:

lib/SILOptimizer/Transforms/FunctionSignatureOpts.cpp

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -637,18 +637,7 @@ void FunctionSignatureTransform::createFunctionSignatureOptimizedFunction() {
637637
// Create the optimized function !
638638
SILModule &M = F->getModule();
639639
std::string Name = createOptimizedSILFunctionName();
640-
641-
// Any function that can be seen in other compilation units within this module
642-
// (either because the function is from another module, or because it public
643-
// or internal) needs to be considered shared, because those compilation units
644-
// may choose to do exactly the same specialization. However, specializations
645-
// of serialized functions are serialized too, and so behave more like the
646-
// original.
647-
SILLinkage linkage = F->getLinkage();
648-
auto localVisibleInOtherObjects =
649-
!hasPrivateVisibility(linkage) && !F->isSerialized();
650-
if (isAvailableExternally(linkage) || localVisibleInOtherObjects)
651-
linkage = SILLinkage::Shared;
640+
SILLinkage linkage = getSpecializedLinkage(F, F->getLinkage());
652641

653642
DEBUG(llvm::dbgs() << " -> create specialized function " << Name << "\n");
654643

lib/TBDGen/TBDGen.cpp

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include "swift/SIL/SILDeclRef.h"
2727
#include "swift/SIL/SILWitnessTable.h"
2828
#include "swift/SIL/TypeLowering.h"
29+
#include "swift/SILGen/SILGenMaterializeForSet.h"
2930
#include "llvm/ADT/StringSet.h"
3031

3132
using namespace swift;
@@ -109,6 +110,8 @@ class TBDGenVisitor : public ASTVisitor<TBDGenVisitor> {
109110

110111
void visitClassDecl(ClassDecl *CD);
111112

113+
void visitConstructorDecl(ConstructorDecl *CD);
114+
112115
void visitExtensionDecl(ExtensionDecl *ED);
113116

114117
void visitProtocolDecl(ProtocolDecl *PD);
@@ -285,6 +288,15 @@ void TBDGenVisitor::visitAbstractStorageDecl(AbstractStorageDecl *ASD) {
285288
InsideAbstractStorageDecl = true;
286289
visitMembers(ASD);
287290
InsideAbstractStorageDecl = false;
291+
292+
// IRGen currently promotes serialized private functions to public, which
293+
// includes the closures inside materializeForSets of computed properties.
294+
if (auto MFS = ASD->getMaterializeForSetFunc()) {
295+
if (!isPrivateDecl(MFS)) {
296+
addSymbol(Lowering::getMaterializeForSetCallbackName(
297+
/*conformance=*/nullptr, MFS));
298+
}
299+
}
288300
}
289301
void TBDGenVisitor::visitVarDecl(VarDecl *VD) {
290302
// statically/globally stored variables have some special handling.
@@ -350,8 +362,7 @@ void TBDGenVisitor::visitClassDecl(ClassDecl *CD) {
350362
continue;
351363

352364
auto var = dyn_cast<VarDecl>(value);
353-
auto hasFieldOffset =
354-
!isGeneric && var && var->hasStorage() && !var->isStatic();
365+
auto hasFieldOffset = var && var->hasStorage() && !var->isStatic();
355366
if (hasFieldOffset) {
356367
// FIXME: a field only has one sort of offset, but it is moderately
357368
// non-trivial to compute which one. Including both is less painful than
@@ -360,10 +371,8 @@ void TBDGenVisitor::visitClassDecl(ClassDecl *CD) {
360371
addSymbol(LinkEntity::forFieldOffset(var, /*isIndirect=*/true));
361372
}
362373

363-
// The non-allocating forms of the constructors and destructors.
364-
if (auto ctor = dyn_cast<ConstructorDecl>(value)) {
365-
addSymbol(SILDeclRef(ctor, SILDeclRef::Kind::Initializer));
366-
} else if (auto dtor = dyn_cast<DestructorDecl>(value)) {
374+
// The non-allocating forms of the destructors.
375+
if (auto dtor = dyn_cast<DestructorDecl>(value)) {
367376
// ObjC classes don't have a symbol for their destructor.
368377
if (!isObjC)
369378
addSymbol(SILDeclRef(dtor, SILDeclRef::Kind::Destroyer));
@@ -373,6 +382,16 @@ void TBDGenVisitor::visitClassDecl(ClassDecl *CD) {
373382
visitNominalTypeDecl(CD);
374383
}
375384

385+
void TBDGenVisitor::visitConstructorDecl(ConstructorDecl *CD) {
386+
if (CD->getParent()->getAsClassOrClassExtensionContext()) {
387+
// Class constructors come in two forms, allocating and non-allocating. The
388+
// default ValueDecl handling gives the allocating one, so we have to
389+
// manually include the non-allocating one.
390+
addSymbol(SILDeclRef(CD, SILDeclRef::Kind::Initializer));
391+
}
392+
visitAbstractFunctionDecl(CD);
393+
}
394+
376395
void TBDGenVisitor::visitExtensionDecl(ExtensionDecl *ED) {
377396
if (!ED->getExtendedType()->isExistentialType()) {
378397
addConformances(ED);
@@ -386,14 +405,15 @@ void TBDGenVisitor::visitProtocolDecl(ProtocolDecl *PD) {
386405
addSymbol(LinkEntity::forProtocolDescriptor(PD));
387406

388407
#ifndef NDEBUG
389-
// There's no (currently) relevant information about members of a protocol
390-
// at individual protocols, each conforming type has to handle them
391-
// individually. Let's assert this fact:
408+
// There's no (currently) relevant information about members of a protocol at
409+
// individual protocols, each conforming type has to handle them individually
410+
// (NB. anything within an active IfConfigDecls also appears outside). Let's
411+
// assert this fact:
392412
for (auto *member : PD->getMembers()) {
393413
auto isExpectedKind =
394414
isa<TypeAliasDecl>(member) || isa<AssociatedTypeDecl>(member) ||
395415
isa<AbstractStorageDecl>(member) || isa<PatternBindingDecl>(member) ||
396-
isa<AbstractFunctionDecl>(member);
416+
isa<AbstractFunctionDecl>(member) || isa<IfConfigDecl>(member);
397417
assert(isExpectedKind &&
398418
"unexpected member of protocol during TBD generation");
399419
}

stdlib/public/SwiftShims/DispatchOverlayShims.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ static inline void _swift_dispatch_apply_current(
166166
}
167167

168168
SWIFT_DISPATCH_RETURNS_RETAINED
169-
__swift_shims_dispatch_data_t
169+
static inline __swift_shims_dispatch_data_t
170170
_swift_dispatch_data_create(
171171
const void *buffer,
172172
size_t size,
@@ -177,7 +177,7 @@ _swift_dispatch_data_create(
177177

178178
typedef unsigned int (^__swift_shims_dispatch_data_applier)(__swift_shims_dispatch_data_t, size_t, const void *, size_t);
179179

180-
unsigned int
180+
static inline unsigned int
181181
_swift_dispatch_data_apply(
182182
__swift_shims_dispatch_data_t data,
183183
__swift_shims_dispatch_data_applier SWIFT_DISPATCH_NOESCAPE applier) {
@@ -186,19 +186,19 @@ _swift_dispatch_data_apply(
186186
});
187187
}
188188

189-
void _swift_dispatch_source_set_event_handler(
189+
static inline void _swift_dispatch_source_set_event_handler(
190190
dispatch_source_t source,
191191
__swift_shims_dispatch_block_t _Nullable block) {
192192
dispatch_source_set_event_handler(source, block);
193193
}
194194

195-
void _swift_dispatch_source_set_cancel_handler(
195+
static inline void _swift_dispatch_source_set_cancel_handler(
196196
dispatch_source_t source,
197197
__swift_shims_dispatch_block_t _Nullable block) {
198198
dispatch_source_set_cancel_handler(source, block);
199199
}
200200

201-
void _swift_dispatch_source_set_registration_handler(
201+
static inline void _swift_dispatch_source_set_registration_handler(
202202
dispatch_source_t source,
203203
__swift_shims_dispatch_block_t _Nullable block) {
204204
dispatch_source_set_registration_handler(source, block);

stdlib/public/SwiftShims/NSIndexSetShims.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ NS_BEGIN_DECLS
2020
- (NSUInteger)_indexOfRangeContainingIndex:(NSUInteger)value;
2121
@end
2222

23-
extern NSUInteger __NSIndexSetRangeCount(NS_NON_BRIDGED(NSIndexSet *)self_) {
23+
NS_INLINE NSUInteger __NSIndexSetRangeCount(NS_NON_BRIDGED(NSIndexSet *)self_) {
2424
return [(NSIndexSet *)self_ rangeCount];
2525
}
2626

27-
extern void __NSIndexSetRangeAtIndex(NS_NON_BRIDGED(NSIndexSet *)self_, NSUInteger rangeIndex, NSUInteger *location, NSUInteger *length) {
27+
NS_INLINE void __NSIndexSetRangeAtIndex(NS_NON_BRIDGED(NSIndexSet *)self_, NSUInteger rangeIndex, NSUInteger *location, NSUInteger *length) {
2828
NSRange result = [(NSIndexSet *)self_ rangeAtIndex:rangeIndex];
2929
*location = result.location;
3030
*length = result.length;

test/SILOptimizer/functionsigopts.sil

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1743,7 +1743,7 @@ bb0(%0 : $*T):
17431743
// Check that we specialized this function by removing the dead argument and
17441744
// copied everything appropriately.
17451745

1746-
// CHECK-LABEL: sil [serialized] @_T023dead_arg_with_callsitesTfq4dn_n : $@convention(thin) (Builtin.NativeObject) -> () {
1746+
// CHECK-LABEL: sil shared [serialized] @_T023dead_arg_with_callsitesTfq4dn_n : $@convention(thin) (Builtin.NativeObject) -> () {
17471747
// CHECK: bb0([[INPUT_ARG:%[0-9]+]] : $Builtin.NativeObject):
17481748
// CHECK: cond_br undef, bb1, bb2
17491749
// CHECK: bb1:
@@ -1757,16 +1757,16 @@ bb0(%0 : $*T):
17571757
// CHECK-NEXT: tuple
17581758
// CHECK-NEXT: return
17591759

1760-
// CHECK-LABEL: sil private [serialized] @_T031private_dead_arg_with_callsitesTfq4dn_n : $@convention(thin) (Builtin.NativeObject) -> () {
1760+
// CHECK-LABEL: sil shared [serialized] @_T031private_dead_arg_with_callsitesTfq4dn_n : $@convention(thin) (Builtin.NativeObject) -> () {
17611761
// CHECK: bb0(
17621762

1763-
// CHECK-LABEL: sil [serialized] @_T037owned_to_guaranteed_with_error_resultTfq4gn_n : $@convention(thin) (@guaranteed Builtin.NativeObject, Int) -> (Int, @error Error) {
1763+
// CHECK-LABEL: sil shared [serialized] @_T037owned_to_guaranteed_with_error_resultTfq4gn_n : $@convention(thin) (@guaranteed Builtin.NativeObject, Int) -> (Int, @error Error) {
17641764
// CHECK-NOT: release
17651765
// CHECK: throw
17661766

1767-
// CHECK-LABEL: sil [serialized] @_T042owned_to_guaranteed_simple_singlebb_calleeTfq4g_n : $@convention(thin) (@guaranteed Builtin.NativeObject) -> () {
1767+
// CHECK-LABEL: sil shared [serialized] @_T042owned_to_guaranteed_simple_singlebb_calleeTfq4g_n : $@convention(thin) (@guaranteed Builtin.NativeObject) -> () {
17681768

1769-
// CHECK-LABEL: sil [serialized] @_T055owned_to_guaranteed_multibb_callee_with_release_in_exitTfq4dg_n : $@convention(thin) (@guaranteed Builtin.NativeObject) -> () {
1769+
// CHECK-LABEL: sil shared [serialized] @_T055owned_to_guaranteed_multibb_callee_with_release_in_exitTfq4dg_n : $@convention(thin) (@guaranteed Builtin.NativeObject) -> () {
17701770
// CHECK: bb0(
17711771
// CHECK: function_ref user
17721772
// CHECK: function_ref @user
@@ -1784,7 +1784,7 @@ bb0(%0 : $*T):
17841784
// Also make sure we have change the calling convention to freestanding from
17851785
// method because we have changed the self argument.
17861786

1787-
// CHECK-LABEL: sil [serialized] @_T014array_semanticTfq4g_n : $@convention(thin) (@guaranteed Builtin.NativeObject) -> () {
1787+
// CHECK-LABEL: sil shared [serialized] @_T014array_semanticTfq4g_n : $@convention(thin) (@guaranteed Builtin.NativeObject) -> () {
17881788
// CHECK: bb0(%0 : $Builtin.NativeObject)
17891789
// CHECK: function_ref user
17901790
// CHECK: function_ref @user

test/SILOptimizer/functionsigopts_sroa.sil

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -908,14 +908,14 @@ bb0(%0 : $SingleFieldLvl1):
908908

909909
// Check Statements for generated code.
910910

911-
// CHECK-LABEL: sil [serialized] @_T029single_level_dead_root_calleeTfq4x_n : $@convention(thin) (Builtin.Int32) -> Builtin.Int32 {
911+
// CHECK-LABEL: sil shared [serialized] @_T029single_level_dead_root_calleeTfq4x_n : $@convention(thin) (Builtin.Int32) -> Builtin.Int32 {
912912
// CHECK: bb0([[IN:%.*]] : $Builtin.Int32):
913913
// CHECK: [[UN:%.*]] = struct $S1 (undef : $Builtin.Int16, [[IN]] : $Builtin.Int32)
914914
// CHECK: struct_extract [[UN]] : $S1, #S1.f2
915915
// CHECK: return [[IN]] : $Builtin.Int32
916916

917917

918-
// CHECK-LABEL: sil [serialized] @_T029single_level_live_root_calleeTfq4x_n : $@convention(thin) (Builtin.Int16, Builtin.Int32) -> Builtin.Int32 {
918+
// CHECK-LABEL: sil shared [serialized] @_T029single_level_live_root_calleeTfq4x_n : $@convention(thin) (Builtin.Int16, Builtin.Int32) -> Builtin.Int32 {
919919
// CHECK: bb0([[IN1:%.*]] : $Builtin.Int16, [[IN2:%.*]] : $Builtin.Int32):
920920
// CHECK: [[STRUCT:%.*]] = struct $S1 ([[IN1]] : $Builtin.Int16, [[IN2]] : $Builtin.Int32)
921921
// CHECK: [[STRUCT2:%.*]] = struct $S1 ([[IN1]] : $Builtin.Int16, [[IN2]] : $Builtin.Int32)
@@ -925,7 +925,7 @@ bb0(%0 : $SingleFieldLvl1):
925925
// CHECK: return [[IN2]]
926926

927927

928-
// CHECK-LABEL: sil [serialized] @_T042multiple_level_all_root_fields_used_calleeTfq4x_n : $@convention(thin) (Builtin.Int16, Builtin.Int64) -> (Builtin.Int16, Builtin.Int64) {
928+
// CHECK-LABEL: sil shared [serialized] @_T042multiple_level_all_root_fields_used_calleeTfq4x_n : $@convention(thin) (Builtin.Int16, Builtin.Int64) -> (Builtin.Int16, Builtin.Int64) {
929929
// CHECK: bb0([[IN1:%.*]] : $Builtin.Int16, [[IN2:%.*]] : $Builtin.Int64):
930930
// CHECK: [[STRUCT1:%.*]] = struct $S1 ([[IN1]] : $Builtin.Int16, undef : $Builtin.Int32)
931931
// CHECK: [[STRUCT2:%.*]] = struct $S2 (%2 : $S1, [[IN2]] : $Builtin.Int64)
@@ -936,7 +936,7 @@ bb0(%0 : $SingleFieldLvl1):
936936
// CHECK: return [[OUT]]
937937

938938

939-
// CHECK-LABEL: sil [serialized] @_T053multiple_level_no_root_fields_have_direct_uses_calleeTfq4x_n : $@convention(thin) (Builtin.Int16, Builtin.Int64) -> (Builtin.Int16, Builtin.Int64) {
939+
// CHECK-LABEL: sil shared [serialized] @_T053multiple_level_no_root_fields_have_direct_uses_calleeTfq4x_n : $@convention(thin) (Builtin.Int16, Builtin.Int64) -> (Builtin.Int16, Builtin.Int64) {
940940
// CHECK: bb0([[IN1:%.*]] : $Builtin.Int16, [[IN2:%.*]] : $Builtin.Int64):
941941
// CHECK: [[STRUCT1:%.*]] = struct $S1 ([[IN1]] : $Builtin.Int16, undef : $Builtin.Int32)
942942
// CHECK: [[STRUCT2:%.*]] = struct $S2 ([[STRUCT1]] : $S1, [[IN2]] : $Builtin.Int64)
@@ -946,7 +946,7 @@ bb0(%0 : $SingleFieldLvl1):
946946
// CHECK: return [[OUT]]
947947

948948

949-
// CHECK-LABEL: sil [serialized] @_T043multiple_level_root_must_be_reformed_calleeTfq4x_n : $@convention(thin) (Builtin.Int16, Builtin.Int32, Builtin.Int64) -> (Builtin.Int16, Builtin.Int64) {
949+
// CHECK-LABEL: sil shared [serialized] @_T043multiple_level_root_must_be_reformed_calleeTfq4x_n : $@convention(thin) (Builtin.Int16, Builtin.Int32, Builtin.Int64) -> (Builtin.Int16, Builtin.Int64) {
950950
// CHECK: bb0([[IN1:%.*]] : $Builtin.Int16, [[IN2:%.*]] : $Builtin.Int32, [[IN3:%.*]] : $Builtin.Int64):
951951
// CHECK: [[STRUCT1:%.*]] = struct $S1 ([[IN1]] : $Builtin.Int16, [[IN2]] : $Builtin.Int32)
952952
// CHECK: [[STRUCT3:%.*]] = struct $S2 ([[STRUCT1]] : $S1, [[IN3]] : $Builtin.Int64)
@@ -960,7 +960,7 @@ bb0(%0 : $SingleFieldLvl1):
960960

961961

962962

963-
// CHECK-LABEL: sil [serialized] @_T021owned_struct_1_calleeTfq4dgX_n : $@convention(thin) (@guaranteed S4, Builtin.Int16, Builtin.Int32) -> (Builtin.Int16, Builtin.Int32, Builtin.Int16, Builtin.Int32) {
963+
// CHECK-LABEL: sil shared [serialized] @_T021owned_struct_1_calleeTfq4dgX_n : $@convention(thin) (@guaranteed S4, Builtin.Int16, Builtin.Int32) -> (Builtin.Int16, Builtin.Int32, Builtin.Int16, Builtin.Int32) {
964964
// CHECK: bb0([[IN1:%.*]] : $S4, [[IN2:%.*]] : $Builtin.Int16, [[IN3:%.*]] : $Builtin.Int32):
965965
// CHECK: [[STRUCT1:%.*]] = struct $S1 ([[IN2]] : $Builtin.Int16, [[IN3]] : $Builtin.Int32)
966966
// CHECK: [[STRUCT3:%.*]] = struct $S5 ([[IN1]] : $S4, [[STRUCT1]] : $S1)
@@ -970,7 +970,7 @@ bb0(%0 : $SingleFieldLvl1):
970970
// CHECK: [[OUT:%.*]] = tuple ([[IN2]] : $Builtin.Int16, [[IN3]] : $Builtin.Int32, [[IN2]] : $Builtin.Int16, [[IN3]] : $Builtin.Int32)
971971
// CHECK: return [[OUT]] : $(Builtin.Int16, Builtin.Int32, Builtin.Int16, Builtin.Int32)
972972

973-
// CHECK-LABEL: sil [serialized] @_T021owned_struct_2_calleeTfq4ndgXdn_n : $@convention(thin) (Builtin.Int256, @guaranteed S4, Builtin.Int16, Builtin.Int32, Builtin.Int128) -> (Builtin.Int256, Builtin.Int16, Builtin.Int32, Builtin.Int128) {
973+
// CHECK-LABEL: sil shared [serialized] @_T021owned_struct_2_calleeTfq4ndgXdn_n : $@convention(thin) (Builtin.Int256, @guaranteed S4, Builtin.Int16, Builtin.Int32, Builtin.Int128) -> (Builtin.Int256, Builtin.Int16, Builtin.Int32, Builtin.Int128) {
974974
// CHECK: bb0([[IN1:%.*]] : $Builtin.Int256, [[IN2:%.*]] : $S4, [[IN3:%.*]] : $Builtin.Int16, [[IN4:%.*]] : $Builtin.Int32, [[IN5:%.*]] : $Builtin.Int128):
975975
// CHECK: [[STRUCT1:%.*]] = struct $S1 ([[IN3]] : $Builtin.Int16, [[IN4]] : $Builtin.Int32)
976976
// CHECK: [[STRUCT3:%.*]] = struct $S5 ([[IN2]] : $S4, [[STRUCT1]] : $S1)
@@ -983,7 +983,7 @@ bb0(%0 : $SingleFieldLvl1):
983983
// CHECK: [[OUT]] : $(Builtin.Int256, Builtin.Int16, Builtin.Int32, Builtin.Int128)
984984

985985

986-
// CHECK-LABEL: sil [serialized] @_T018ignore_ptrs_calleeTfq4nxx_n : $@convention(thin) (@in S1, Builtin.Int16, Builtin.Int16) -> (Builtin.Int16, Builtin.Int16) {
986+
// CHECK-LABEL: sil shared [serialized] @_T018ignore_ptrs_calleeTfq4nxx_n : $@convention(thin) (@in S1, Builtin.Int16, Builtin.Int16) -> (Builtin.Int16, Builtin.Int16) {
987987
// CHECK: bb0([[IN1:%.*]] : $*S1, [[IN2:%.*]] : $Builtin.Int16, [[IN3:%.*]] : $Builtin.Int16):
988988
// CHECK: [[STRUCT2:%.*]] = struct $S1 ([[IN2]] : $Builtin.Int16, undef : $Builtin.Int32)
989989
// CHECK: [[STRUCT1:%.*]] = struct $S1 ([[IN3]] : $Builtin.Int16, undef : $Builtin.Int32)
@@ -996,7 +996,7 @@ bb0(%0 : $SingleFieldLvl1):
996996
// CHECK: [[OUT:%.*]] = tuple ([[IN2]] : $Builtin.Int16, [[IN3]] : $Builtin.Int16)
997997
// CHECK: return [[OUT]] : $(Builtin.Int16, Builtin.Int16)
998998

999-
// CHECK-LABEL: sil [serialized] @_T030check_out_of_order_uses_calleeTfq4x_n : $@convention(thin) (Builtin.Int16, Builtin.Int32) -> () {
999+
// CHECK-LABEL: sil shared [serialized] @_T030check_out_of_order_uses_calleeTfq4x_n : $@convention(thin) (Builtin.Int16, Builtin.Int32) -> () {
10001000
// CHECK: bb0([[IN1:%.*]] : $Builtin.Int16, [[IN2:%.*]] : $Builtin.Int32):
10011001
// CHECK: [[STRUCT0:%.*]] = struct $S1 ([[IN1]] : $Builtin.Int16, [[IN2]] : $Builtin.Int32)
10021002
// CHECK: debug_value [[STRUCT0]]
@@ -1008,6 +1008,6 @@ bb0(%0 : $SingleFieldLvl1):
10081008
// CHECK: apply [[FN2]]([[IN1]]) : $@convention(thin) (Builtin.Int16) -> ()
10091009

10101010

1011-
// CHECK-LABEL: sil [serialized] @_T014class_callee_1Tfq4gn_n : $@convention(thin) (@guaranteed C1, Builtin.Int32) -> Builtin.Int32 {
1011+
// CHECK-LABEL: sil shared [serialized] @_T014class_callee_1Tfq4gn_n : $@convention(thin) (@guaranteed C1, Builtin.Int32) -> Builtin.Int32 {
10121012
// CHECK: bb0({{%.*}} : $C1, [[IN:%.*]] : $Builtin.Int32):
10131013
// CHECK: return [[IN]] : $Builtin.Int32

0 commit comments

Comments
 (0)