Add 'mark_dependence', which indicates that an address

or pointer depends on another for validity in a
non-obvious way.

Also, document some basic value-propagation rules
based roughly on the optimization rules for ARC.

Swift SVN r23695
This commit is contained in:
John McCall
2014-12-04 22:38:09 +00:00
parent 5df1746336
commit dd07c8ca10
15 changed files with 225 additions and 4 deletions

View File

@@ -115,6 +115,7 @@ static bool isTransitiveEscapeInst(SILInstruction *Inst) {
case ValueKind::UncheckedAddrCastInst:
case ValueKind::UncheckedTrivialBitCastInst:
case ValueKind::UncheckedRefBitCastInst:
case ValueKind::MarkDependenceInst:
case ValueKind::OpenExistentialInst:
case ValueKind::OpenExistentialMetatypeInst:
case ValueKind::OpenExistentialRefInst: