Add a copy_block_without_escaping %block withoutEscaping %closure instruction

Mandatory pass will clean it up and replace it by a copy_block and
is_escaping/cond_fail/release combination on the %closure in follow-up
patches.

The instruction marks the dependence of a block on a closure that is
used as an 'withoutActuallyEscaping' sentinel.

rdar://39682865
This commit is contained in:
Arnold Schwaighofer
2018-04-25 16:01:34 -07:00
parent c45d659e1f
commit 678a99e76a
18 changed files with 138 additions and 2 deletions

View File

@@ -55,7 +55,7 @@ const uint16_t VERSION_MAJOR = 0;
/// describe what change you made. The content of this comment isn't important;
/// it just ensures a conflict if two people change the module format.
/// Don't worry about adhering to the 80-column limit for this line.
const uint16_t VERSION_MINOR = 410; // Last change: NameAlias substitution map
const uint16_t VERSION_MINOR = 411; // Last change: copy_block_without_escaping
using DeclIDField = BCFixed<31>;