@@ -308,9 +308,8 @@ OPERAND_OWNERSHIP(ForwardingConsume, Throw)
308308OPERAND_OWNERSHIP(InteriorPointer, RefElementAddr)
309309OPERAND_OWNERSHIP(InteriorPointer, RefTailAddr)
310310OPERAND_OWNERSHIP(InteriorPointer, OpenExistentialBox)
311- // FIXME: HopToExecutorInst should be an instantaneous use.
312- OPERAND_OWNERSHIP(InteriorPointer, HopToExecutor)
313- OPERAND_OWNERSHIP(InteriorPointer, ExtractExecutor)
311+ OPERAND_OWNERSHIP(InstantaneousUse, HopToExecutor)
312+ OPERAND_OWNERSHIP(PointerEscape, ExtractExecutor)
314313
315314// Instructions that propagate a value within a borrow scope.
316315OPERAND_OWNERSHIP(GuaranteedForwarding, TupleExtract)
@@ -894,12 +893,8 @@ OperandOwnershipBuiltinClassifier::visitCreateAsyncTask(BuiltinInst *bi,
894893 // The function operand is consumed by the new task.
895894 if (&op == &bi->getOperandRef (PARAMETER_INDEX_CREATE_ASYNC_TASK_FUTURE_FUNCTION))
896895 return OperandOwnership::DestroyingConsume;
897-
898- // FIXME: These are considered InteriorPointer because they may propagate a
899- // pointer into a borrowed values. If they do not propagate an interior pointer,
900- // then they should be InstantaneousUse instead and should not require a
901- // guaranteed value.
902- return OperandOwnership::InteriorPointer;
896+
897+ return OperandOwnership::InstantaneousUse;
903898}
904899
905900OperandOwnership
@@ -908,12 +903,8 @@ OperandOwnershipBuiltinClassifier::visitCreateAsyncTaskInGroup(BuiltinInst *bi,
908903 // The function operand is consumed by the new task.
909904 if (&op == &bi->getOperandRef (PARAMETER_INDEX_CREATE_ASYNC_TASK_GROUP_FUTURE_FUNCTION))
910905 return OperandOwnership::DestroyingConsume;
911-
912- // FIXME: These are considered InteriorPointer because they may propagate a
913- // pointer into a borrowed values. If they do not propagate an interior pointer,
914- // then they should be InstantaneousUse instead and should not require a
915- // guaranteed value.
916- return OperandOwnership::InteriorPointer;
906+
907+ return OperandOwnership::InstantaneousUse;
917908}
918909
919910OperandOwnership OperandOwnershipBuiltinClassifier::
@@ -945,12 +936,13 @@ visitResumeThrowingContinuationThrowing(BuiltinInst *bi, StringRef attr) {
945936
946937BUILTIN_OPERAND_OWNERSHIP (InstantaneousUse, TaskRunInline)
947938
948- BUILTIN_OPERAND_OWNERSHIP(InteriorPointer , CancelAsyncTask)
949- BUILTIN_OPERAND_OWNERSHIP(InteriorPointer , InitializeDefaultActor)
950- BUILTIN_OPERAND_OWNERSHIP(InteriorPointer , DestroyDefaultActor)
939+ BUILTIN_OPERAND_OWNERSHIP(InstantaneousUse , CancelAsyncTask)
940+ BUILTIN_OPERAND_OWNERSHIP(InstantaneousUse , InitializeDefaultActor)
941+ BUILTIN_OPERAND_OWNERSHIP(InstantaneousUse , DestroyDefaultActor)
951942
952- BUILTIN_OPERAND_OWNERSHIP(InteriorPointer, InitializeDistributedRemoteActor)
953- BUILTIN_OPERAND_OWNERSHIP(InteriorPointer, InitializeNonDefaultDistributedActor)
943+ BUILTIN_OPERAND_OWNERSHIP(InstantaneousUse, InitializeDistributedRemoteActor)
944+ BUILTIN_OPERAND_OWNERSHIP(InstantaneousUse,
945+ InitializeNonDefaultDistributedActor)
954946
955947BUILTIN_OPERAND_OWNERSHIP(PointerEscape, AutoDiffAllocateSubcontext)
956948BUILTIN_OPERAND_OWNERSHIP(PointerEscape, AutoDiffProjectTopLevelSubcontext)
0 commit comments