[SILOptimizer] Add prespecialization for arbitray reference types (#58846)

* [SILOptimizer] Add prespecialization for arbitray reference types

* Fix benchmark Package.swift

* Move SimpleArray to utils

* Fix multiple indirect result case

* Remove leftover code from previous attempt

* Fix test after rebase

* Move code to compute type replacements to SpecializedFunction

* Fix ownership when OSSA is enabled

* Fixes after rebase

* Changes after rebasing

* Add feature flag for layout pre-specialization

* Fix pre_specialize-macos.swift

* Add compiler flag to benchmark build

* Fix benchmark SwiftPM flags
This commit is contained in:
Dario Rexin
2022-09-22 16:29:01 -07:00
committed by GitHub
parent 6b586b6afd
commit 210c68d8aa
45 changed files with 1199 additions and 180 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 = 712; // move only deinit table
const uint16_t SWIFTMODULE_VERSION_MINOR = 713; // @_noMetadata attribute in @_specialize
/// A standard hash seed used for all string hashes in a serialized module.
///
@@ -2032,7 +2032,8 @@ namespace decls_block {
BCVBR<4>, // # of arguments (+1) or 1 if simple decl name, 0 if no target
BCVBR<4>, // # of SPI groups
BCVBR<4>, // # of availability attributes
BCArray<IdentifierIDField> // target function pieces, spi groups
BCVBR<4>, // # of type erased parameters
BCArray<IdentifierIDField> // target function pieces, spi groups, type erased params
>;
using DifferentiableDeclAttrLayout = BCRecordLayout<