@@ -251,16 +251,6 @@ final public class EndAccessInst : Instruction, UnaryInstruction {
251
251
252
252
final public class EndBorrowInst : Instruction , UnaryInstruction { }
253
253
254
- final public class DeallocStackInst : Instruction , UnaryInstruction {
255
- public var allocstack : AllocStackInst {
256
- return operand. value as! AllocStackInst
257
- }
258
- }
259
-
260
- final public class DeallocStackRefInst : Instruction , UnaryInstruction {
261
- public var allocRef : AllocRefInstBase { operand. value as! AllocRefInstBase }
262
- }
263
-
264
254
final public class MarkUninitializedInst : SingleValueInstruction , UnaryInstruction {
265
255
}
266
256
@@ -286,8 +276,6 @@ final public class AbortApplyInst : Instruction, UnaryInstruction {}
286
276
287
277
final public class SetDeallocatingInst : Instruction , UnaryInstruction { }
288
278
289
- final public class DeallocRefInst : Instruction , UnaryInstruction { }
290
-
291
279
public class RefCountingInst : Instruction , UnaryInstruction {
292
280
public var isAtomic : Bool { bridged. RefCountingInst_getIsAtomic ( ) }
293
281
}
@@ -320,6 +308,32 @@ final public class InjectEnumAddrInst : Instruction, UnaryInstruction, EnumInstr
320
308
321
309
final public class UnimplementedRefCountingInst : RefCountingInst { }
322
310
311
+ //===----------------------------------------------------------------------===//
312
+ // no-value deallocation instructions
313
+ //===----------------------------------------------------------------------===//
314
+
315
+ public protocol Deallocation : Instruction { }
316
+
317
+ final public class DeallocStackInst : Instruction , UnaryInstruction , Deallocation {
318
+ public var allocstack : AllocStackInst {
319
+ return operand. value as! AllocStackInst
320
+ }
321
+ }
322
+
323
+ final public class DeallocPackInst : Instruction , UnaryInstruction , Deallocation { }
324
+
325
+ final public class DeallocStackRefInst : Instruction , UnaryInstruction , Deallocation {
326
+ public var allocRef : AllocRefInstBase { operand. value as! AllocRefInstBase }
327
+ }
328
+
329
+ final public class DeallocRefInst : Instruction , UnaryInstruction , Deallocation { }
330
+
331
+ final public class DeallocPartialRefInst : Instruction , Deallocation { }
332
+
333
+ final public class DeallocBoxInst : Instruction , UnaryInstruction , Deallocation { }
334
+
335
+ final public class DeallocExistentialBoxInst : Instruction , UnaryInstruction , Deallocation { }
336
+
323
337
//===----------------------------------------------------------------------===//
324
338
// single-value instructions
325
339
//===----------------------------------------------------------------------===//
0 commit comments