Skip to content

Commit a3cbc28

Browse files
committed
SwiftCompilerSources: Add enum BeginAccess.AccessKind
So we can switch over it.
1 parent 9515ab9 commit a3cbc28

File tree

6 files changed

+15
-21
lines changed

6 files changed

+15
-21
lines changed

SwiftCompilerSources/Sources/Optimizer/FunctionPasses/LetPropertyLowering.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ private func constructLetInitRegion(
156156
initRegion.insert(inst)
157157

158158
case let beginAccess as BeginAccessInst
159-
where beginAccess.accessKind == .Deinit &&
159+
where beginAccess.accessKind == .deinit &&
160160
beginAccess.address.isLetFieldAddress(of: markUninitialized):
161161
// Include let-field partial de-initializations in the region.
162162
initRegion.insert(inst)

SwiftCompilerSources/Sources/Optimizer/ModulePasses/StackProtection.swift

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

SwiftCompilerSources/Sources/SIL/Instruction.swift

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -983,12 +983,18 @@ final public class BridgeObjectToRefInst : SingleValueInstruction, UnaryInstruct
983983

984984
final public class BridgeObjectToWordInst : SingleValueInstruction, UnaryInstruction {}
985985

986-
public typealias AccessKind = BridgedInstruction.AccessKind
987-
988-
989986
// TODO: add support for begin_unpaired_access
990987
final public class BeginAccessInst : SingleValueInstruction, UnaryInstruction {
991-
public var accessKind: AccessKind { bridged.BeginAccessInst_getAccessKind() }
988+
// The raw values must match SILAccessKind.
989+
public enum AccessKind: Int {
990+
case `init` = 0
991+
case read = 1
992+
case modify = 2
993+
case `deinit` = 3
994+
}
995+
public var accessKind: AccessKind {
996+
AccessKind(rawValue: bridged.BeginAccessInst_getAccessKind())!
997+
}
992998

993999
public var isStatic: Bool { bridged.BeginAccessInst_isStatic() }
9941000

include/swift/SIL/SILBridging.h

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -811,13 +811,6 @@ struct BridgedInstruction {
811811
bool hasValue;
812812
};
813813

814-
enum class AccessKind {
815-
Init,
816-
Read,
817-
Modify,
818-
Deinit
819-
};
820-
821814
enum class MarkDependenceKind {
822815
Unresolved, Escaping, NonEscaping
823816
};
@@ -887,7 +880,7 @@ struct BridgedInstruction {
887880
BRIDGED_INLINE SwiftInt AssignInst_getAssignOwnership() const;
888881
BRIDGED_INLINE MarkDependenceKind MarkDependenceInst_dependenceKind() const;
889882
BRIDGED_INLINE void MarkDependenceInst_resolveToNonEscaping() const;
890-
BRIDGED_INLINE AccessKind BeginAccessInst_getAccessKind() const;
883+
BRIDGED_INLINE SwiftInt BeginAccessInst_getAccessKind() const;
891884
BRIDGED_INLINE bool BeginAccessInst_isStatic() const;
892885
BRIDGED_INLINE bool CopyAddrInst_isTakeOfSrc() const;
893886
BRIDGED_INLINE bool CopyAddrInst_isInitializationOfDest() const;

include/swift/SIL/SILBridgingImpl.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1134,8 +1134,8 @@ void BridgedInstruction::MarkDependenceInst_resolveToNonEscaping() const {
11341134
getAs<swift::MarkDependenceInst>()->resolveToNonEscaping();
11351135
}
11361136

1137-
BridgedInstruction::AccessKind BridgedInstruction::BeginAccessInst_getAccessKind() const {
1138-
return (AccessKind)getAs<swift::BeginAccessInst>()->getAccessKind();
1137+
SwiftInt BridgedInstruction::BeginAccessInst_getAccessKind() const {
1138+
return (SwiftInt)getAs<swift::BeginAccessInst>()->getAccessKind();
11391139
}
11401140

11411141
bool BridgedInstruction::BeginAccessInst_isStatic() const {

lib/SIL/Utils/SILBridging.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -402,11 +402,6 @@ static_assert((int)BridgedMemoryBehavior::MayWrite == (int)swift::MemoryBehavior
402402
static_assert((int)BridgedMemoryBehavior::MayReadWrite == (int)swift::MemoryBehavior::MayReadWrite);
403403
static_assert((int)BridgedMemoryBehavior::MayHaveSideEffects == (int)swift::MemoryBehavior::MayHaveSideEffects);
404404

405-
static_assert((int)BridgedInstruction::AccessKind::Init == (int)swift::SILAccessKind::Init);
406-
static_assert((int)BridgedInstruction::AccessKind::Read == (int)swift::SILAccessKind::Read);
407-
static_assert((int)BridgedInstruction::AccessKind::Modify == (int)swift::SILAccessKind::Modify);
408-
static_assert((int)BridgedInstruction::AccessKind::Deinit == (int)swift::SILAccessKind::Deinit);
409-
410405
BridgedOwnedString BridgedInstruction::getDebugDescription() const {
411406
std::string str;
412407
llvm::raw_string_ostream os(str);

0 commit comments

Comments
 (0)