Add new flags "reborrow" and "escaping" to SILArgument.

"reborrow" flag on the SILArgument avoids transitive walk over the phi operandsi
to determine if it is a reborrow in multiple utilities.
SIL transforms must keep the flag up-to-date by calling SILArgument::setReborrow.
SILVerifier checks to ensure the flag is not invalidated.

Currently "escaping" is not used anywhere.
This commit is contained in:
Meghana Gupta
2023-05-03 22:42:20 -07:00
parent 8ab43a4a44
commit 1dc713e2f7
42 changed files with 436 additions and 158 deletions

View File

@@ -58,7 +58,7 @@ const uint16_t SWIFTMODULE_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 SWIFTMODULE_VERSION_MINOR = 781; // compound introduced names
const uint16_t SWIFTMODULE_VERSION_MINOR = 782; // reborrow, escaped SIL flags
/// A standard hash seed used for all string hashes in a serialized module.
///