You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We have a DFS tree available in both early liveness and SSA's liveness,
and we can use it to make the data flow cheaper by running in an RPO
over the DFS tree. This allows us to propagate the maximal amount of
knowledge in each iteration and also to stop the data flow early when
there is no cycle in the DFS tree.
We do not have the DFS tree available in lowering where we also call
liveness. However, lowering was already iterating all blocks to remove
dead blocks; switch this to `fgDfsBlocksAndRemove` to remove dead blocks
and compute the DFS tree in one go, and remove the old code doing this.
Additionally there was a bunch of logic in liveness to consider debug
scopes for debug codegen, left-over from a time where we tracked GC
pointers even in MinOpts. This code can be deleted since we do not do
liveness in MinOpts anymore.
0 commit comments