Skip to content

Commit dab3240

Browse files
committed
[rbi] Make convert_escape_to_no_escape and convert_function lookthrough if their result/operand is non-Sendable.
In these cases, we want to lookthrough so we propagate through nonisolated(unsafe) and make it easier to discover that we are processing keypaths (the reason I am making this change).
1 parent 44052e5 commit dab3240

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

lib/SILOptimizer/Analysis/RegionAnalysis.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,8 @@ static bool isLookThroughIfOperandAndResultNonSendable(SILInstruction *inst) {
320320
case SILInstructionKind::StructElementAddrInst:
321321
case SILInstructionKind::TupleElementAddrInst:
322322
case SILInstructionKind::UncheckedTakeEnumDataAddrInst:
323+
case SILInstructionKind::ConvertEscapeToNoEscapeInst:
324+
case SILInstructionKind::ConvertFunctionInst:
323325
return true;
324326
}
325327
}
@@ -2985,8 +2987,6 @@ CONSTANT_TRANSLATION(LoadUnownedInst, Assign)
29852987
// getUnderlyingTrackedObject.
29862988
CONSTANT_TRANSLATION(AddressToPointerInst, Assign)
29872989
CONSTANT_TRANSLATION(BaseAddrForOffsetInst, Assign)
2988-
CONSTANT_TRANSLATION(ConvertEscapeToNoEscapeInst, Assign)
2989-
CONSTANT_TRANSLATION(ConvertFunctionInst, Assign)
29902990
CONSTANT_TRANSLATION(ThunkInst, Assign)
29912991
CONSTANT_TRANSLATION(CopyBlockInst, Assign)
29922992
CONSTANT_TRANSLATION(CopyBlockWithoutEscapingInst, Assign)
@@ -3314,6 +3314,8 @@ LOOKTHROUGH_IF_NONSENDABLE_RESULT_AND_OPERAND(UncheckedValueCastInst)
33143314
LOOKTHROUGH_IF_NONSENDABLE_RESULT_AND_OPERAND(TupleElementAddrInst)
33153315
LOOKTHROUGH_IF_NONSENDABLE_RESULT_AND_OPERAND(StructElementAddrInst)
33163316
LOOKTHROUGH_IF_NONSENDABLE_RESULT_AND_OPERAND(UncheckedTakeEnumDataAddrInst)
3317+
LOOKTHROUGH_IF_NONSENDABLE_RESULT_AND_OPERAND(ConvertEscapeToNoEscapeInst)
3318+
LOOKTHROUGH_IF_NONSENDABLE_RESULT_AND_OPERAND(ConvertFunctionInst)
33173319

33183320
#undef LOOKTHROUGH_IF_NONSENDABLE_RESULT_AND_OPERAND
33193321

0 commit comments

Comments
 (0)