Add variants of the checked-cast instructions that

put the result in a different place.

WIP: no IRGen support yet.

This will eventually be the required form when casting
to an address-only type; the existing instructions will
have only scalar outputs.

Swift SVN r18780
This commit is contained in:
John McCall
2014-06-10 07:43:22 +00:00
parent 50404f6210
commit 0f0874bb4b
13 changed files with 272 additions and 40 deletions

View File

@@ -99,6 +99,7 @@ static bool isTransitiveEscapeInst(SILInstruction *Inst) {
case ValueKind::ValueMetatypeInst:
case ValueKind::BranchInst:
case ValueKind::CheckedCastBranchInst:
case ValueKind::CheckedCastAddrBranchInst:
case ValueKind::ClassMethodInst:
case ValueKind::CondBranchInst:
case ValueKind::ConvertFunctionInst:
@@ -142,6 +143,7 @@ static bool isTransitiveEscapeInst(SILInstruction *Inst) {
case ValueKind::TupleExtractInst:
case ValueKind::TupleInst:
case ValueKind::UnconditionalCheckedCastInst:
case ValueKind::UnconditionalCheckedCastAddrInst:
case ValueKind::UnmanagedToRefInst:
case ValueKind::UnownedToRefInst:
case ValueKind::UpcastExistentialRefInst: