@@ -205,43 +205,44 @@ struct SILMoveOnlyWrappedTypeEliminatorVisitor
205
205
206
206
#define NO_UPDATE_NEEDED (CLS ) \
207
207
bool visit##CLS##Inst(CLS##Inst *inst) { return false ; }
208
- NO_UPDATE_NEEDED (AllocStack )
208
+ NO_UPDATE_NEEDED (AddressToPointer )
209
209
NO_UPDATE_NEEDED (AllocBox)
210
- NO_UPDATE_NEEDED (ProjectBox)
211
- NO_UPDATE_NEEDED (DebugValue)
212
- NO_UPDATE_NEEDED (StructElementAddr)
213
- NO_UPDATE_NEEDED (TupleElementAddr)
214
- NO_UPDATE_NEEDED (UncheckedTakeEnumDataAddr)
215
- NO_UPDATE_NEEDED (DestructureTuple)
216
- NO_UPDATE_NEEDED (DestructureStruct)
217
- NO_UPDATE_NEEDED (SelectEnum)
218
- NO_UPDATE_NEEDED (MarkDependence)
219
- NO_UPDATE_NEEDED (MarkDependenceAddr)
220
- NO_UPDATE_NEEDED (DestroyAddr)
221
- NO_UPDATE_NEEDED (DeallocStack)
222
- NO_UPDATE_NEEDED (DeallocBox)
210
+ NO_UPDATE_NEEDED (AllocStack)
211
+ NO_UPDATE_NEEDED (AutoreleaseValue)
212
+ NO_UPDATE_NEEDED (BeginAccess)
223
213
NO_UPDATE_NEEDED (Branch)
224
- NO_UPDATE_NEEDED (ExplicitCopyAddr)
225
- NO_UPDATE_NEEDED (CopyAddr)
226
- NO_UPDATE_NEEDED (RefElementAddr)
214
+ NO_UPDATE_NEEDED (BridgeObjectToRef)
215
+ NO_UPDATE_NEEDED (Builtin)
227
216
NO_UPDATE_NEEDED (CheckedCastBranch)
228
- NO_UPDATE_NEEDED (Object)
229
- NO_UPDATE_NEEDED (OpenExistentialRef)
230
- NO_UPDATE_NEEDED (OpenExistentialAddr)
231
- NO_UPDATE_NEEDED (OpenExistentialBox)
217
+ NO_UPDATE_NEEDED (ClassMethod)
232
218
NO_UPDATE_NEEDED (ConvertFunction)
233
- NO_UPDATE_NEEDED (RefToBridgeObject)
234
- NO_UPDATE_NEEDED (BridgeObjectToRef)
235
- NO_UPDATE_NEEDED (BeginAccess)
219
+ NO_UPDATE_NEEDED (CopyAddr)
220
+ NO_UPDATE_NEEDED (DeallocBox)
221
+ NO_UPDATE_NEEDED (DeallocStack)
222
+ NO_UPDATE_NEEDED (DebugValue)
223
+ NO_UPDATE_NEEDED (DestroyAddr)
224
+ NO_UPDATE_NEEDED (DestructureStruct)
225
+ NO_UPDATE_NEEDED (DestructureTuple)
236
226
NO_UPDATE_NEEDED (EndAccess)
237
227
NO_UPDATE_NEEDED (EndCOWMutationAddr)
238
- NO_UPDATE_NEEDED (ClassMethod)
239
- NO_UPDATE_NEEDED (FixLifetime)
240
- NO_UPDATE_NEEDED (AddressToPointer)
241
228
NO_UPDATE_NEEDED (ExistentialMetatype)
242
- NO_UPDATE_NEEDED (Builtin)
229
+ NO_UPDATE_NEEDED (ExplicitCopyAddr)
230
+ NO_UPDATE_NEEDED (FixLifetime)
243
231
NO_UPDATE_NEEDED (IgnoredUse)
232
+ NO_UPDATE_NEEDED (MarkDependence)
233
+ NO_UPDATE_NEEDED (MarkDependenceAddr)
244
234
NO_UPDATE_NEEDED (ObjCMethod)
235
+ NO_UPDATE_NEEDED (Object)
236
+ NO_UPDATE_NEEDED (OpenExistentialAddr)
237
+ NO_UPDATE_NEEDED (OpenExistentialBox)
238
+ NO_UPDATE_NEEDED (OpenExistentialRef)
239
+ NO_UPDATE_NEEDED (ProjectBox)
240
+ NO_UPDATE_NEEDED (RefElementAddr)
241
+ NO_UPDATE_NEEDED (RefToBridgeObject)
242
+ NO_UPDATE_NEEDED (SelectEnum)
243
+ NO_UPDATE_NEEDED (StructElementAddr)
244
+ NO_UPDATE_NEEDED (TupleElementAddr)
245
+ NO_UPDATE_NEEDED (UncheckedTakeEnumDataAddr)
245
246
#undef NO_UPDATE_NEEDED
246
247
247
248
bool eliminateIdentityCast (SingleValueInstruction *svi) {
@@ -258,6 +259,7 @@ struct SILMoveOnlyWrappedTypeEliminatorVisitor
258
259
}
259
260
ELIMINATE_POTENTIAL_IDENTITY_CAST (Upcast)
260
261
ELIMINATE_POTENTIAL_IDENTITY_CAST (UncheckedAddrCast)
262
+ ELIMINATE_POTENTIAL_IDENTITY_CAST (UncheckedRefCast)
261
263
ELIMINATE_POTENTIAL_IDENTITY_CAST (UnconditionalCheckedCast)
262
264
#undef ELIMINATE_POTENTIAL_IDENTITY_CAST
263
265
// We handle apply sites by just inserting a convert_function that converts
0 commit comments