Skip to content

Commit 3f1a30c

Browse files
committed
[cxx-interop][SwiftCompilerSources] Use swift::SILAccessKind instead of BridgedAccessKind
rdar://83361087
1 parent 78cdf5e commit 3f1a30c

File tree

5 files changed

+10
-45
lines changed

5 files changed

+10
-45
lines changed

SwiftCompilerSources/Sources/Optimizer/ModulePasses/StackProtection.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ private struct StackProtectionOptimization {
332332
/// Moves the value of a `beginAccess` to a temporary stack location, if possible.
333333
private func moveToTemporary(scope beginAccess: BeginAccessInst, mustFixStackNesting: inout Bool,
334334
_ context: PassContext) {
335-
if beginAccess.accessKind != .modify {
335+
if beginAccess.accessKind != .Modify {
336336
// We can only move from a `modify` access.
337337
// Also, read-only accesses shouldn't be subject to buffer overflows (because
338338
// no one should ever write to such a storage).

SwiftCompilerSources/Sources/SIL/Instruction.swift

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -533,34 +533,12 @@ final public class BridgeObjectToRefInst : SingleValueInstruction,
533533
final public class BridgeObjectToWordInst : SingleValueInstruction,
534534
UnaryInstruction {}
535535

536-
public enum AccessKind {
537-
case initialize
538-
case read
539-
case modify
540-
case deinitialize
541-
}
542-
543-
extension BridgedAccessKind {
544-
var kind: AccessKind {
545-
switch self {
546-
case AccessKind_Init:
547-
return .initialize
548-
case AccessKind_Read:
549-
return .read
550-
case AccessKind_Modify:
551-
return .modify
552-
case AccessKind_Deinit:
553-
return .deinitialize
554-
default:
555-
fatalError("unsupported access kind")
556-
}
557-
}
558-
}
536+
public typealias AccessKind = swift.SILAccessKind
559537

560538

561539
// TODO: add support for begin_unpaired_access
562540
final public class BeginAccessInst : SingleValueInstruction, UnaryInstruction {
563-
public var accessKind: AccessKind { BeginAccessInst_getAccessKind(bridged).kind }
541+
public var accessKind: AccessKind { BeginAccessInst_getAccessKind(bridged) }
564542
}
565543

566544
public protocol ScopedInstruction {

include/swift/SIL/SILBridging.h

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "swift/Basic/BridgedSwiftObject.h"
1818
#include "swift/AST/Builtins.h"
1919
#include "swift/AST/SubstitutionMap.h"
20+
#include "swift/SIL/SILInstruction.h"
2021
#include "swift/SIL/SILLocation.h"
2122
#include <stdbool.h>
2223
#include <stddef.h>
@@ -176,13 +177,6 @@ typedef enum {
176177
MayHaveSideEffectsBehavior
177178
} BridgedMemoryBehavior;
178179

179-
typedef enum {
180-
AccessKind_Init,
181-
AccessKind_Read,
182-
AccessKind_Modify,
183-
AccessKind_Deinit
184-
} BridgedAccessKind;
185-
186180
typedef enum {
187181
Ownership_Unowned,
188182
Ownership_Owned,
@@ -378,7 +372,7 @@ BridgedBasicBlock BranchInst_getTargetBlock(BridgedInstruction bi);
378372
SwiftInt SwitchEnumInst_getNumCases(BridgedInstruction se);
379373
SwiftInt SwitchEnumInst_getCaseIndex(BridgedInstruction se, SwiftInt idx);
380374
SwiftInt StoreInst_getStoreOwnership(BridgedInstruction store);
381-
BridgedAccessKind BeginAccessInst_getAccessKind(BridgedInstruction beginAccess);
375+
swift::SILAccessKind BeginAccessInst_getAccessKind(BridgedInstruction beginAccess);
382376
SwiftInt CopyAddrInst_isTakeOfSrc(BridgedInstruction copyAddr);
383377
SwiftInt CopyAddrInst_isInitializationOfDest(BridgedInstruction copyAddr);
384378
void RefCountingInst_setIsAtomic(BridgedInstruction rc, bool isAtomic);

include/swift/module.modulemap

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,13 @@ module BasicBridging {
77
}
88

99
module ASTBridging {
10+
header "AST/AnyFunctionRef.h"
1011
header "AST/ASTBridging.h"
1112
header "AST/Builtins.h"
1213
header "AST/DiagnosticEngine.h"
1314
header "AST/DiagnosticConsumer.h"
15+
header "AST/ForeignAsyncConvention.h"
16+
header "AST/ForeignErrorConvention.h"
1417
header "AST/SubstitutionMap.h"
1518

1619
textual header "AST/Builtins.def"

lib/SIL/Utils/SILBridging.cpp

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -877,18 +877,8 @@ SwiftInt StoreInst_getStoreOwnership(BridgedInstruction store) {
877877
return (SwiftInt)castToInst<StoreInst>(store)->getOwnershipQualifier();
878878
}
879879

880-
BridgedAccessKind BeginAccessInst_getAccessKind(BridgedInstruction beginAccess) {
881-
auto kind = castToInst<BeginAccessInst>(beginAccess)->getAccessKind();
882-
switch (kind) {
883-
case SILAccessKind::Init:
884-
return BridgedAccessKind::AccessKind_Init;
885-
case SILAccessKind::Read:
886-
return BridgedAccessKind::AccessKind_Read;
887-
case SILAccessKind::Modify:
888-
return BridgedAccessKind::AccessKind_Modify;
889-
case SILAccessKind::Deinit:
890-
return BridgedAccessKind::AccessKind_Deinit;
891-
}
880+
SILAccessKind BeginAccessInst_getAccessKind(BridgedInstruction beginAccess) {
881+
return castToInst<BeginAccessInst>(beginAccess)->getAccessKind();
892882
}
893883

894884
SwiftInt CopyAddrInst_isTakeOfSrc(BridgedInstruction copyAddr) {

0 commit comments

Comments
 (0)