mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
This now supports liveness holes within blocks where previously we expected a phi def. PrunedLiveness is streamlined for SSA liveness where we expect the defs and uses to be related in the SSA def-use graph. MultiDefPrunedLiveness was added on top of SSAPrunedLivenes to handle extended SSA liveness that occurs with phis, but are still connected in the def-use graph. Recently MultiDefPrunedLiveness was repurposed for liveness of addressible storage. This means that we can now have uses before defs in the same block without a corresponding phi. Fortunately, handling this case is a straightforward extension of MultiDefPrunedLiveness that does not complicate or penalize the streamlined SSA case.
22 KiB
22 KiB