@@ -250,11 +250,6 @@ extension UnaryInstruction {
250250// no-value instructions
251251//===----------------------------------------------------------------------===//
252252
253- /// Used for all non-value instructions which are not implemented here, yet.
254- /// See registerBridgedClass() in SILBridgingUtils.cpp.
255- final public class UnimplementedInstruction : Instruction {
256- }
257-
258253/// Only one of the operands may have an address type.
259254public protocol StoringInstruction : Instruction {
260255 var operands : OperandArray { get }
@@ -352,6 +347,9 @@ final public class EndAccessInst : Instruction, UnaryInstruction {
352347 }
353348}
354349
350+ final public class BeginUnpairedAccessInst : Instruction { }
351+ final public class EndUnpairedAccessInst : Instruction { }
352+
355353final public class EndBorrowInst : Instruction , UnaryInstruction { }
356354
357355final public class MarkUninitializedInst : SingleValueInstruction , ConversionInstruction {
@@ -400,6 +398,8 @@ final public class CondFailInst : Instruction, UnaryInstruction {
400398 public var message : StringRef { StringRef ( bridged: bridged. CondFailInst_getMessage ( ) ) }
401399}
402400
401+ final public class IncrementProfilerCounterInst : Instruction { }
402+
403403final public class MarkFunctionEscapeInst : Instruction { }
404404
405405final public class HopToExecutorInst : Instruction , UnaryInstruction { }
@@ -445,6 +445,8 @@ final public class DebugValueInst : Instruction, UnaryInstruction, DebugVariable
445445
446446final public class DebugStepInst : Instruction { }
447447
448+ final public class SpecifyTestInst : Instruction { }
449+
448450final public class UnconditionalCheckedCastAddrInst : Instruction {
449451 public override var mayTrap : Bool { true }
450452}
@@ -459,6 +461,9 @@ final public class BeginDeallocRefInst : SingleValueInstruction {
459461
460462final public class EndInitLetRefInst : SingleValueInstruction , UnaryInstruction { }
461463
464+ final public class BindMemoryInst : SingleValueInstruction { }
465+ final public class RebindMemoryInst : SingleValueInstruction { }
466+
462467public class RefCountingInst : Instruction , UnaryInstruction {
463468 public var isAtomic : Bool { bridged. RefCountingInst_getIsAtomic ( ) }
464469}
@@ -467,6 +472,8 @@ final public class StrongRetainInst : RefCountingInst {
467472 public var instance : Value { operand. value }
468473}
469474
475+ final public class StrongRetainUnownedInst : RefCountingInst { }
476+
470477final public class UnownedRetainInst : RefCountingInst {
471478 public var instance : Value { operand. value }
472479}
@@ -501,6 +508,9 @@ final public class UnmanagedReleaseValueInst : RefCountingInst {
501508 public var value : Value { return operand. value }
502509}
503510
511+ final public class AutoreleaseValueInst : RefCountingInst { }
512+ final public class UnmanagedAutoreleaseValueInst : RefCountingInst { }
513+
504514final public class DestroyValueInst : Instruction , UnaryInstruction {
505515 public var destroyedValue : Value { operand. value }
506516}
@@ -516,8 +526,6 @@ final public class InjectEnumAddrInst : Instruction, UnaryInstruction, EnumInstr
516526 public var caseIndex : Int { bridged. InjectEnumAddrInst_caseIndex ( ) }
517527}
518528
519- final public class UnimplementedRefCountingInst : RefCountingInst { }
520-
521529//===----------------------------------------------------------------------===//
522530// no-value deallocation instructions
523531//===----------------------------------------------------------------------===//
@@ -538,6 +546,7 @@ final public class DeallocStackInst : Instruction, UnaryInstruction, Deallocatio
538546}
539547
540548final public class DeallocPackInst : Instruction , UnaryInstruction , Deallocation { }
549+ final public class DeallocPackMetadataInst : Instruction , Deallocation { }
541550
542551final public class DeallocStackRefInst : Instruction , UnaryInstruction , Deallocation {
543552 public var allocRef : AllocRefInstBase { operand. value as! AllocRefInstBase }
@@ -555,11 +564,6 @@ final public class DeallocExistentialBoxInst : Instruction, UnaryInstruction, De
555564// single-value instructions
556565//===----------------------------------------------------------------------===//
557566
558- /// Used for all SingleValueInstructions which are not implemented here, yet.
559- /// See registerBridgedClass() in SILBridgingUtils.cpp.
560- final public class UnimplementedSingleValueInst : SingleValueInstruction {
561- }
562-
563567public protocol LoadInstruction : SingleValueInstruction , UnaryInstruction { }
564568
565569extension LoadInstruction {
@@ -622,6 +626,15 @@ final public class UncheckedTrivialBitCastInst : SingleValueInstruction, UnaryIn
622626 public var fromValue : Value { operand. value }
623627}
624628
629+ final public class UncheckedBitwiseCastInst : SingleValueInstruction , UnaryInstruction { }
630+ final public class UncheckedValueCastInst : SingleValueInstruction , UnaryInstruction { }
631+
632+ final public class RefToRawPointerInst : SingleValueInstruction , UnaryInstruction { }
633+ final public class RefToUnmanagedInst : SingleValueInstruction , UnaryInstruction { }
634+ final public class RefToUnownedInst : SingleValueInstruction , UnaryInstruction { }
635+ final public class UnmanagedToRefInst : SingleValueInstruction , UnaryInstruction { }
636+ final public class UnownedToRefInst : SingleValueInstruction , UnaryInstruction { }
637+
625638final public
626639class RawPointerToRefInst : SingleValueInstruction , UnaryInstruction {
627640 public var pointer : Value { operand. value }
@@ -652,6 +665,8 @@ class IndexAddrInst : SingleValueInstruction {
652665 }
653666}
654667
668+ final public class IndexRawPointerInst : SingleValueInstruction { }
669+
655670final public
656671class TailAddrInst : SingleValueInstruction {
657672 public var base : Value { operands [ 0 ] . value }
@@ -708,7 +723,15 @@ class ValueMetatypeInst : SingleValueInstruction, UnaryInstruction {}
708723final public
709724class ExistentialMetatypeInst : SingleValueInstruction , UnaryInstruction { }
710725
711- public class GlobalAccessInst : SingleValueInstruction {
726+ final public class OpenPackElementInst : SingleValueInstruction { }
727+ final public class PackLengthInst : SingleValueInstruction { }
728+ final public class DynamicPackIndexInst : SingleValueInstruction { }
729+ final public class PackPackIndexInst : SingleValueInstruction { }
730+ final public class ScalarPackIndexInst : SingleValueInstruction { }
731+
732+ final public class ObjCProtocolInst : SingleValueInstruction { }
733+
734+ public class GlobalAccessInstruction : SingleValueInstruction {
712735 final public var global : GlobalVariable {
713736 bridged. GlobalAccessInst_getGlobal ( ) . globalVar
714737 }
@@ -733,7 +756,7 @@ final public class DynamicFunctionRefInst : FunctionRefBaseInst {
733756final public class PreviousDynamicFunctionRefInst : FunctionRefBaseInst {
734757}
735758
736- final public class GlobalAddrInst : GlobalAccessInst , VarDeclInstruction {
759+ final public class GlobalAddrInst : GlobalAccessInstruction , VarDeclInstruction {
737760 public var varDecl : VarDecl ? {
738761 VarDecl ( bridged: bridged. GlobalAddr_getDecl ( ) )
739762 }
@@ -743,10 +766,12 @@ final public class GlobalAddrInst : GlobalAccessInst, VarDeclInstruction {
743766 }
744767}
745768
746- final public class GlobalValueInst : GlobalAccessInst {
769+ final public class GlobalValueInst : GlobalAccessInstruction {
747770 public var isBare : Bool { bridged. GlobalValueInst_isBare ( ) }
748771}
749772
773+ final public class BaseAddrForOffsetInst : SingleValueInstruction { }
774+
750775final public class AllocGlobalInst : Instruction {
751776 public var global : GlobalVariable {
752777 bridged. AllocGlobalInst_getGlobal ( ) . globalVar
@@ -788,6 +813,8 @@ final public class StringLiteralInst : SingleValueInstruction {
788813 }
789814}
790815
816+ final public class HasSymbolInst : SingleValueInstruction { }
817+
791818final public class TupleInst : SingleValueInstruction , ForwardingInstruction { }
792819
793820final public class TupleExtractInst : SingleValueInstruction , UnaryInstruction , ForwardingInstruction {
@@ -897,6 +924,12 @@ class ConvertFunctionInst : SingleValueInstruction, ConversionInstruction {
897924final public
898925class ThinToThickFunctionInst : SingleValueInstruction , ConversionInstruction { }
899926
927+ final public class ThickToObjCMetatypeInst : SingleValueInstruction , ConversionInstruction { }
928+ final public class ObjCToThickMetatypeInst : SingleValueInstruction , ConversionInstruction { }
929+
930+ final public class CopyBlockInst : SingleValueInstruction { }
931+ final public class CopyBlockWithoutEscapingInst : SingleValueInstruction { }
932+
900933final public
901934class ConvertEscapeToNoEscapeInst : SingleValueInstruction , UnaryInstruction {
902935 public var fromFunction : Value { operand. value }
@@ -920,6 +953,8 @@ class GetAsyncContinuationInst : SingleValueInstruction {}
920953final public
921954class GetAsyncContinuationAddrInst : SingleValueInstruction , UnaryInstruction { }
922955
956+ final public class ExtractExecutorInst : SingleValueInstruction { }
957+
923958final public
924959class MarkDependenceInst : SingleValueInstruction , ForwardingInstruction {
925960 public enum DependenceKind : Int32 {
@@ -1002,6 +1037,8 @@ final public class ProjectBoxInst : SingleValueInstruction, UnaryInstruction {
10021037 public var fieldIndex : Int { bridged. ProjectBoxInst_fieldIndex ( ) }
10031038}
10041039
1040+ final public class ProjectExistentialBoxInst : SingleValueInstruction , UnaryInstruction { }
1041+
10051042public protocol CopyingInstruction : SingleValueInstruction , UnaryInstruction { }
10061043
10071044final public class CopyValueInst : SingleValueInstruction , UnaryInstruction , CopyingInstruction {
@@ -1012,6 +1049,11 @@ final public class ExplicitCopyValueInst : SingleValueInstruction, UnaryInstruct
10121049 public var fromValue : Value { operand. value }
10131050}
10141051
1052+ final public class UnownedCopyValueInst : SingleValueInstruction , UnaryInstruction , CopyingInstruction { }
1053+ final public class WeakCopyValueInst : SingleValueInstruction , UnaryInstruction , CopyingInstruction { }
1054+
1055+ final public class UncheckedOwnershipConversionInst : SingleValueInstruction { }
1056+
10151057final public class MoveValueInst : SingleValueInstruction , UnaryInstruction {
10161058 public var fromValue : Value { operand. value }
10171059
@@ -1025,8 +1067,8 @@ final public class DropDeinitInst : SingleValueInstruction, UnaryInstruction {
10251067}
10261068
10271069final public class StrongCopyUnownedValueInst : SingleValueInstruction , UnaryInstruction { }
1028-
10291070final public class StrongCopyUnmanagedValueInst : SingleValueInstruction , UnaryInstruction { }
1071+ final public class StrongCopyWeakValueInst : SingleValueInstruction , UnaryInstruction { }
10301072
10311073final public class EndCOWMutationInst : SingleValueInstruction , UnaryInstruction {
10321074 public var instance : Value { operand. value }
@@ -1055,6 +1097,8 @@ final public class ApplyInst : SingleValueInstruction, FullApplySite {
10551097 public var specializationInfo : SpecializationInfo { bridged. ApplyInst_getSpecializationInfo ( ) }
10561098}
10571099
1100+ final public class FunctionExtractIsolationInst : SingleValueInstruction { }
1101+
10581102final public class ClassMethodInst : SingleValueInstruction , UnaryInstruction { }
10591103
10601104final public class SuperMethodInst : SingleValueInstruction , UnaryInstruction { }
@@ -1072,6 +1116,8 @@ final public class IsEscapingClosureInst : SingleValueInstruction, UnaryInstruct
10721116final public class MarkUnresolvedNonCopyableValueInst
10731117 : SingleValueInstruction , UnaryInstruction , ConversionInstruction { }
10741118
1119+ final public class MarkUnresolvedReferenceBindingInst : SingleValueInstruction { }
1120+
10751121final public class MarkUnresolvedMoveAddrInst : Instruction , SourceDestAddrInstruction {
10761122 public var isTakeOfSrc : Bool { true }
10771123 public var isInitializationOfDest : Bool { true }
@@ -1083,6 +1129,8 @@ final public class CopyableToMoveOnlyWrapperValueInst
10831129final public class MoveOnlyWrapperToCopyableValueInst
10841130 : SingleValueInstruction , UnaryInstruction , ConversionInstruction { }
10851131
1132+ final public class MoveOnlyWrapperToCopyableBoxInst : SingleValueInstruction { }
1133+
10861134final public class CopyableToMoveOnlyWrapperAddrInst
10871135 : SingleValueInstruction , UnaryInstruction { }
10881136
@@ -1120,6 +1168,9 @@ final public class PackElementSetInst: SingleValueInstruction {}
11201168final public class DifferentiableFunctionInst : SingleValueInstruction , ForwardingInstruction { }
11211169
11221170final public class LinearFunctionInst : SingleValueInstruction , ForwardingInstruction { }
1171+ final public class DifferentiableFunctionExtractInst : SingleValueInstruction { }
1172+ final public class LinearFunctionExtractInst : SingleValueInstruction { }
1173+ final public class DifferentiabilityWitnessFunctionInst : SingleValueInstruction { }
11231174
11241175final public class ProjectBlockStorageInst : SingleValueInstruction , UnaryInstruction { }
11251176
@@ -1147,6 +1198,9 @@ final public class AllocVectorInst : SingleValueInstruction, Allocation, UnaryIn
11471198 public var capacity : Value { operand. value }
11481199}
11491200
1201+ final public class AllocPackInst : SingleValueInstruction , Allocation { }
1202+ final public class AllocPackMetadataInst : SingleValueInstruction , Allocation { }
1203+
11501204public class AllocRefInstBase : SingleValueInstruction , Allocation {
11511205 final public var isObjC : Bool { bridged. AllocRefInstBase_isObjc ( ) }
11521206
@@ -1346,7 +1400,7 @@ final public class SwitchEnumInst : TermInst, ForwardingInstruction {
13461400final public class SwitchEnumAddrInst : TermInst {
13471401}
13481402
1349- final public class SelectEnumAddrInst : TermInst {
1403+ final public class SelectEnumAddrInst : SingleValueInstruction {
13501404}
13511405
13521406final public class DynamicMethodBranchInst : TermInst {
0 commit comments