-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement dynamic SNCA domtree algorithm #37884
Conversation
@nanosoldier |
Wrong syntax: @nanosoldier |
Your package evaluation job has completed - possible new issues were detected. A full report can be found here. cc @maleadt |
So fast... |
That server upgrade was worth it. |
This comment has been minimized.
This comment has been minimized.
@nanosoldier |
Your package evaluation job has completed - possible new issues were detected. A full report can be found here. cc @maleadt |
03637df
to
4f5725e
Compare
…ons and deletions The DFS tree associated with a CFG now keeps track of postorder as well as preorder numbers. The DFS tree, as well as the state associated with the SNCA algorithm for finding (immediate) dominators is now stored in DomTree and reused for Dynamic SNCA.
… predecessors For now, just construct the domtree when we make an `IncrementalCompact` rather than try to update it (the domtree) incrementally.
…of CFG This is in anticipation of domtrees being added to CFGs.
This is so we can add type declarations to fields in ir.jl that are domtrees, by breaking the dependency loop between domtree.jl (uses basic blocks but defines domtrees) and ir.jl (uses domtrees but defined basic blocks).
4f5725e
to
f7852e3
Compare
@nanosoldier |
Your package evaluation job has completed - no new issues were detected. A full report can be found here. cc @maleadt |
While looking at rebasing #33730 in #37882. I decided that it would be better to split that PR into two pieces.
First the implementation of Dynamic SNCA by @yhls and some of the code shuffling. On it's own it shouldn't have
any negative performance impacts and it is a really nice piece of work that I don't want to lose to the sands of time.
I stripped out the second piece, which is the actual dynamic updating of the domtree during the optimizations.
That would be nice to have, if we want to do CFG manipulations like #36832, or turn on DCE generally.
Since that seems have a performance impact, holding back on it seems to make the most sense, until we
investigated options like batching operations.
@yhls if you time it would be great if you can look this over once, to see if I messed up the splitting.