Skip to content
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

Merged
merged 5 commits into from Oct 15, 2020
Merged

Implement dynamic SNCA domtree algorithm #37884

merged 5 commits into from Oct 15, 2020

Conversation

vchuravy
Copy link
Sponsor Member

@vchuravy vchuravy commented Oct 5, 2020

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.

@vchuravy vchuravy added the compiler:optimizer Optimization passes (mostly in base/compiler/ssair/) label Oct 5, 2020
@vchuravy vchuravy requested a review from Keno October 5, 2020 03:24
@vchuravy
Copy link
Sponsor Member Author

vchuravy commented Oct 5, 2020

@nanosoldier runtests(ALL, vs=:master)

@maleadt
Copy link
Member

maleadt commented Oct 5, 2020

Wrong syntax:

@nanosoldier runtests(ALL, vs = ":master")

@nanosoldier
Copy link
Collaborator

Your package evaluation job has completed - possible new issues were detected. A full report can be found here. cc @maleadt

@KristofferC
Copy link
Sponsor Member

So fast...

@vchuravy
Copy link
Sponsor Member Author

vchuravy commented Oct 5, 2020

So fast...

That server upgrade was worth it.

@vchuravy

This comment has been minimized.

@KristofferC
Copy link
Sponsor Member

@nanosoldier runtests(["Agents", "ApproxFunRational", "DIVAnd", "Theta"], vs = ":master")

@nanosoldier
Copy link
Collaborator

Your package evaluation job has completed - possible new issues were detected. A full report can be found here. cc @maleadt

…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).
@vchuravy
Copy link
Sponsor Member Author

@nanosoldier runtests(["Theta"], vs = ":master")

@nanosoldier
Copy link
Collaborator

Your package evaluation job has completed - no new issues were detected. A full report can be found here. cc @maleadt

@vchuravy vchuravy merged commit 86bbe09 into master Oct 15, 2020
@vchuravy vchuravy deleted the vc/dynamic_snca branch October 15, 2020 00:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler:optimizer Optimization passes (mostly in base/compiler/ssair/)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants