@@ -250,11 +250,6 @@ extension UnaryInstruction {
250
250
// no-value instructions
251
251
//===----------------------------------------------------------------------===//
252
252
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
-
258
253
/// Only one of the operands may have an address type.
259
254
public protocol StoringInstruction : Instruction {
260
255
var operands : OperandArray { get }
@@ -352,6 +347,9 @@ final public class EndAccessInst : Instruction, UnaryInstruction {
352
347
}
353
348
}
354
349
350
+ final public class BeginUnpairedAccessInst : Instruction { }
351
+ final public class EndUnpairedAccessInst : Instruction { }
352
+
355
353
final public class EndBorrowInst : Instruction , UnaryInstruction { }
356
354
357
355
final public class MarkUninitializedInst : SingleValueInstruction , ConversionInstruction {
@@ -400,6 +398,8 @@ final public class CondFailInst : Instruction, UnaryInstruction {
400
398
public var message : StringRef { StringRef ( bridged: bridged. CondFailInst_getMessage ( ) ) }
401
399
}
402
400
401
+ final public class IncrementProfilerCounterInst : Instruction { }
402
+
403
403
final public class MarkFunctionEscapeInst : Instruction { }
404
404
405
405
final public class HopToExecutorInst : Instruction , UnaryInstruction { }
@@ -445,6 +445,8 @@ final public class DebugValueInst : Instruction, UnaryInstruction, DebugVariable
445
445
446
446
final public class DebugStepInst : Instruction { }
447
447
448
+ final public class SpecifyTestInst : Instruction { }
449
+
448
450
final public class UnconditionalCheckedCastAddrInst : Instruction {
449
451
public override var mayTrap : Bool { true }
450
452
}
@@ -459,6 +461,9 @@ final public class BeginDeallocRefInst : SingleValueInstruction {
459
461
460
462
final public class EndInitLetRefInst : SingleValueInstruction , UnaryInstruction { }
461
463
464
+ final public class BindMemoryInst : SingleValueInstruction { }
465
+ final public class RebindMemoryInst : SingleValueInstruction { }
466
+
462
467
public class RefCountingInst : Instruction , UnaryInstruction {
463
468
public var isAtomic : Bool { bridged. RefCountingInst_getIsAtomic ( ) }
464
469
}
@@ -467,6 +472,8 @@ final public class StrongRetainInst : RefCountingInst {
467
472
public var instance : Value { operand. value }
468
473
}
469
474
475
+ final public class StrongRetainUnownedInst : RefCountingInst { }
476
+
470
477
final public class UnownedRetainInst : RefCountingInst {
471
478
public var instance : Value { operand. value }
472
479
}
@@ -501,6 +508,9 @@ final public class UnmanagedReleaseValueInst : RefCountingInst {
501
508
public var value : Value { return operand. value }
502
509
}
503
510
511
+ final public class AutoreleaseValueInst : RefCountingInst { }
512
+ final public class UnmanagedAutoreleaseValueInst : RefCountingInst { }
513
+
504
514
final public class DestroyValueInst : Instruction , UnaryInstruction {
505
515
public var destroyedValue : Value { operand. value }
506
516
}
@@ -516,8 +526,6 @@ final public class InjectEnumAddrInst : Instruction, UnaryInstruction, EnumInstr
516
526
public var caseIndex : Int { bridged. InjectEnumAddrInst_caseIndex ( ) }
517
527
}
518
528
519
- final public class UnimplementedRefCountingInst : RefCountingInst { }
520
-
521
529
//===----------------------------------------------------------------------===//
522
530
// no-value deallocation instructions
523
531
//===----------------------------------------------------------------------===//
@@ -538,6 +546,7 @@ final public class DeallocStackInst : Instruction, UnaryInstruction, Deallocatio
538
546
}
539
547
540
548
final public class DeallocPackInst : Instruction , UnaryInstruction , Deallocation { }
549
+ final public class DeallocPackMetadataInst : Instruction , Deallocation { }
541
550
542
551
final public class DeallocStackRefInst : Instruction , UnaryInstruction , Deallocation {
543
552
public var allocRef : AllocRefInstBase { operand. value as! AllocRefInstBase }
@@ -555,11 +564,6 @@ final public class DeallocExistentialBoxInst : Instruction, UnaryInstruction, De
555
564
// single-value instructions
556
565
//===----------------------------------------------------------------------===//
557
566
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
-
563
567
public protocol LoadInstruction : SingleValueInstruction , UnaryInstruction { }
564
568
565
569
extension LoadInstruction {
@@ -622,6 +626,15 @@ final public class UncheckedTrivialBitCastInst : SingleValueInstruction, UnaryIn
622
626
public var fromValue : Value { operand. value }
623
627
}
624
628
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
+
625
638
final public
626
639
class RawPointerToRefInst : SingleValueInstruction , UnaryInstruction {
627
640
public var pointer : Value { operand. value }
@@ -652,6 +665,8 @@ class IndexAddrInst : SingleValueInstruction {
652
665
}
653
666
}
654
667
668
+ final public class IndexRawPointerInst : SingleValueInstruction { }
669
+
655
670
final public
656
671
class TailAddrInst : SingleValueInstruction {
657
672
public var base : Value { operands [ 0 ] . value }
@@ -708,7 +723,15 @@ class ValueMetatypeInst : SingleValueInstruction, UnaryInstruction {}
708
723
final public
709
724
class ExistentialMetatypeInst : SingleValueInstruction , UnaryInstruction { }
710
725
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 {
712
735
final public var global : GlobalVariable {
713
736
bridged. GlobalAccessInst_getGlobal ( ) . globalVar
714
737
}
@@ -733,7 +756,7 @@ final public class DynamicFunctionRefInst : FunctionRefBaseInst {
733
756
final public class PreviousDynamicFunctionRefInst : FunctionRefBaseInst {
734
757
}
735
758
736
- final public class GlobalAddrInst : GlobalAccessInst , VarDeclInstruction {
759
+ final public class GlobalAddrInst : GlobalAccessInstruction , VarDeclInstruction {
737
760
public var varDecl : VarDecl ? {
738
761
VarDecl ( bridged: bridged. GlobalAddr_getDecl ( ) )
739
762
}
@@ -743,10 +766,12 @@ final public class GlobalAddrInst : GlobalAccessInst, VarDeclInstruction {
743
766
}
744
767
}
745
768
746
- final public class GlobalValueInst : GlobalAccessInst {
769
+ final public class GlobalValueInst : GlobalAccessInstruction {
747
770
public var isBare : Bool { bridged. GlobalValueInst_isBare ( ) }
748
771
}
749
772
773
+ final public class BaseAddrForOffsetInst : SingleValueInstruction { }
774
+
750
775
final public class AllocGlobalInst : Instruction {
751
776
public var global : GlobalVariable {
752
777
bridged. AllocGlobalInst_getGlobal ( ) . globalVar
@@ -788,6 +813,8 @@ final public class StringLiteralInst : SingleValueInstruction {
788
813
}
789
814
}
790
815
816
+ final public class HasSymbolInst : SingleValueInstruction { }
817
+
791
818
final public class TupleInst : SingleValueInstruction , ForwardingInstruction { }
792
819
793
820
final public class TupleExtractInst : SingleValueInstruction , UnaryInstruction , ForwardingInstruction {
@@ -897,6 +924,12 @@ class ConvertFunctionInst : SingleValueInstruction, ConversionInstruction {
897
924
final public
898
925
class ThinToThickFunctionInst : SingleValueInstruction , ConversionInstruction { }
899
926
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
+
900
933
final public
901
934
class ConvertEscapeToNoEscapeInst : SingleValueInstruction , UnaryInstruction {
902
935
public var fromFunction : Value { operand. value }
@@ -920,6 +953,8 @@ class GetAsyncContinuationInst : SingleValueInstruction {}
920
953
final public
921
954
class GetAsyncContinuationAddrInst : SingleValueInstruction , UnaryInstruction { }
922
955
956
+ final public class ExtractExecutorInst : SingleValueInstruction { }
957
+
923
958
final public
924
959
class MarkDependenceInst : SingleValueInstruction , ForwardingInstruction {
925
960
public enum DependenceKind : Int32 {
@@ -1002,6 +1037,8 @@ final public class ProjectBoxInst : SingleValueInstruction, UnaryInstruction {
1002
1037
public var fieldIndex : Int { bridged. ProjectBoxInst_fieldIndex ( ) }
1003
1038
}
1004
1039
1040
+ final public class ProjectExistentialBoxInst : SingleValueInstruction , UnaryInstruction { }
1041
+
1005
1042
public protocol CopyingInstruction : SingleValueInstruction , UnaryInstruction { }
1006
1043
1007
1044
final public class CopyValueInst : SingleValueInstruction , UnaryInstruction , CopyingInstruction {
@@ -1012,6 +1049,11 @@ final public class ExplicitCopyValueInst : SingleValueInstruction, UnaryInstruct
1012
1049
public var fromValue : Value { operand. value }
1013
1050
}
1014
1051
1052
+ final public class UnownedCopyValueInst : SingleValueInstruction , UnaryInstruction , CopyingInstruction { }
1053
+ final public class WeakCopyValueInst : SingleValueInstruction , UnaryInstruction , CopyingInstruction { }
1054
+
1055
+ final public class UncheckedOwnershipConversionInst : SingleValueInstruction { }
1056
+
1015
1057
final public class MoveValueInst : SingleValueInstruction , UnaryInstruction {
1016
1058
public var fromValue : Value { operand. value }
1017
1059
@@ -1025,8 +1067,8 @@ final public class DropDeinitInst : SingleValueInstruction, UnaryInstruction {
1025
1067
}
1026
1068
1027
1069
final public class StrongCopyUnownedValueInst : SingleValueInstruction , UnaryInstruction { }
1028
-
1029
1070
final public class StrongCopyUnmanagedValueInst : SingleValueInstruction , UnaryInstruction { }
1071
+ final public class StrongCopyWeakValueInst : SingleValueInstruction , UnaryInstruction { }
1030
1072
1031
1073
final public class EndCOWMutationInst : SingleValueInstruction , UnaryInstruction {
1032
1074
public var instance : Value { operand. value }
@@ -1055,6 +1097,8 @@ final public class ApplyInst : SingleValueInstruction, FullApplySite {
1055
1097
public var specializationInfo : SpecializationInfo { bridged. ApplyInst_getSpecializationInfo ( ) }
1056
1098
}
1057
1099
1100
+ final public class FunctionExtractIsolationInst : SingleValueInstruction { }
1101
+
1058
1102
final public class ClassMethodInst : SingleValueInstruction , UnaryInstruction { }
1059
1103
1060
1104
final public class SuperMethodInst : SingleValueInstruction , UnaryInstruction { }
@@ -1072,6 +1116,8 @@ final public class IsEscapingClosureInst : SingleValueInstruction, UnaryInstruct
1072
1116
final public class MarkUnresolvedNonCopyableValueInst
1073
1117
: SingleValueInstruction , UnaryInstruction , ConversionInstruction { }
1074
1118
1119
+ final public class MarkUnresolvedReferenceBindingInst : SingleValueInstruction { }
1120
+
1075
1121
final public class MarkUnresolvedMoveAddrInst : Instruction , SourceDestAddrInstruction {
1076
1122
public var isTakeOfSrc : Bool { true }
1077
1123
public var isInitializationOfDest : Bool { true }
@@ -1083,6 +1129,8 @@ final public class CopyableToMoveOnlyWrapperValueInst
1083
1129
final public class MoveOnlyWrapperToCopyableValueInst
1084
1130
: SingleValueInstruction , UnaryInstruction , ConversionInstruction { }
1085
1131
1132
+ final public class MoveOnlyWrapperToCopyableBoxInst : SingleValueInstruction { }
1133
+
1086
1134
final public class CopyableToMoveOnlyWrapperAddrInst
1087
1135
: SingleValueInstruction , UnaryInstruction { }
1088
1136
@@ -1120,6 +1168,9 @@ final public class PackElementSetInst: SingleValueInstruction {}
1120
1168
final public class DifferentiableFunctionInst : SingleValueInstruction , ForwardingInstruction { }
1121
1169
1122
1170
final public class LinearFunctionInst : SingleValueInstruction , ForwardingInstruction { }
1171
+ final public class DifferentiableFunctionExtractInst : SingleValueInstruction { }
1172
+ final public class LinearFunctionExtractInst : SingleValueInstruction { }
1173
+ final public class DifferentiabilityWitnessFunctionInst : SingleValueInstruction { }
1123
1174
1124
1175
final public class ProjectBlockStorageInst : SingleValueInstruction , UnaryInstruction { }
1125
1176
@@ -1147,6 +1198,9 @@ final public class AllocVectorInst : SingleValueInstruction, Allocation, UnaryIn
1147
1198
public var capacity : Value { operand. value }
1148
1199
}
1149
1200
1201
+ final public class AllocPackInst : SingleValueInstruction , Allocation { }
1202
+ final public class AllocPackMetadataInst : SingleValueInstruction , Allocation { }
1203
+
1150
1204
public class AllocRefInstBase : SingleValueInstruction , Allocation {
1151
1205
final public var isObjC : Bool { bridged. AllocRefInstBase_isObjc ( ) }
1152
1206
@@ -1346,7 +1400,7 @@ final public class SwitchEnumInst : TermInst, ForwardingInstruction {
1346
1400
final public class SwitchEnumAddrInst : TermInst {
1347
1401
}
1348
1402
1349
- final public class SelectEnumAddrInst : TermInst {
1403
+ final public class SelectEnumAddrInst : SingleValueInstruction {
1350
1404
}
1351
1405
1352
1406
final public class DynamicMethodBranchInst : TermInst {
0 commit comments