Commit 24979d4
committed
[SSADestroyHoisting] Adopt new utilities.
Instead of doing one or two non-iterative BackwardReachability runs,
do a single run of IterativeBackwardReachability. During that, pause
after discovery/local dataflow and use VisitBarrierAccessScopes to
determine which end_access instructions in the discovered region are
barriers. Add those instructions as kills to the dataflow. Finally run
the global dataflow.
Enables SSADestroyHoisting to hoist destroys over loops.
Addresses a correctness issue where access scopes which were open at
barrier blocks were not promoted to barriers, resulting in destroy_addrs
getting hoisted into unrelated access scopes.1 parent a6e8277 commit 24979d4
File tree
4 files changed
+2584
-223
lines changed- lib/SILOptimizer/Transforms
- test/SILOptimizer
- validation-test/SILOptimizer
4 files changed
+2584
-223
lines changed
0 commit comments