@@ -308,9 +308,8 @@ OPERAND_OWNERSHIP(ForwardingConsume, Throw)
308
308
OPERAND_OWNERSHIP(InteriorPointer, RefElementAddr)
309
309
OPERAND_OWNERSHIP(InteriorPointer, RefTailAddr)
310
310
OPERAND_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)
314
313
315
314
// Instructions that propagate a value within a borrow scope.
316
315
OPERAND_OWNERSHIP(GuaranteedForwarding, TupleExtract)
@@ -894,12 +893,8 @@ OperandOwnershipBuiltinClassifier::visitCreateAsyncTask(BuiltinInst *bi,
894
893
// The function operand is consumed by the new task.
895
894
if (&op == &bi->getOperandRef (PARAMETER_INDEX_CREATE_ASYNC_TASK_FUTURE_FUNCTION))
896
895
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;
903
898
}
904
899
905
900
OperandOwnership
@@ -908,12 +903,8 @@ OperandOwnershipBuiltinClassifier::visitCreateAsyncTaskInGroup(BuiltinInst *bi,
908
903
// The function operand is consumed by the new task.
909
904
if (&op == &bi->getOperandRef (PARAMETER_INDEX_CREATE_ASYNC_TASK_GROUP_FUTURE_FUNCTION))
910
905
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;
917
908
}
918
909
919
910
OperandOwnership OperandOwnershipBuiltinClassifier::
@@ -945,12 +936,13 @@ visitResumeThrowingContinuationThrowing(BuiltinInst *bi, StringRef attr) {
945
936
946
937
BUILTIN_OPERAND_OWNERSHIP (InstantaneousUse, TaskRunInline)
947
938
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)
951
942
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)
954
946
955
947
BUILTIN_OPERAND_OWNERSHIP(PointerEscape, AutoDiffAllocateSubcontext)
956
948
BUILTIN_OPERAND_OWNERSHIP(PointerEscape, AutoDiffProjectTopLevelSubcontext)
0 commit comments