mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Hoist alloc_stack instructions of 'generic' or resilient type to the entry block. At the same time also perform a very simple stack coloring analysis. This does not use a true liveness-analysis yet but rather employs some simple conservative checks to see whether the live ranges of two alloc_stacks might interfere. AllocStackHoisting is an IRGen SIL pass. This allows for using IRGen's type lowering information. Furthermore, hoisting and merging the alloc_stack instructions this late does not interfere with SIL optimizations because the resulting SIL never gets serialized.