SIL: Add unchecked_{trivial,ref}_bit_cast instructions.

These instructions do a bitcast operation without stack traffic (at the SIL level). unchecked_trivial_bit_cast represents a conversion from a potentially nontrivial type to a trivial type, such as from a class reference to Int. unchecked_ref_bit_cast represents a conversion between types for which retain_value and release_value has equivalent effects when applied on the input or output values.

Swift SVN r19053
This commit is contained in:
Joe Groff
2014-06-20 22:02:38 +00:00
parent 7a15e4b479
commit d9d451cea5
15 changed files with 196 additions and 2 deletions

View File

@@ -117,6 +117,8 @@ static bool isTransitiveEscapeInst(SILInstruction *Inst) {
case ValueKind::ObjCToThickMetatypeInst:
case ValueKind::UncheckedRefCastInst:
case ValueKind::UncheckedAddrCastInst:
case ValueKind::UncheckedTrivialBitCastInst:
case ValueKind::UncheckedRefBitCastInst:
case ValueKind::OpenExistentialInst:
case ValueKind::OpenExistentialRefInst:
case ValueKind::PartialApplyInst: