-
-
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
updating domtrees dynamically, removing all unreachable blocks #33730
Commits on Aug 3, 2020
-
Decline to remove phi nodes when this might cause forward references
Phi nodes are optimized away when there is only one predecessor, but this can cause problems in dead loops because forward references can be created, leading to issues with optimization passes that look at all code, dead or not. This fixes issue JuliaLang#29107 when DCE is turned on.
Configuration menu - View commit details
-
Copy full SHA for bb6e299 - Browse repository at this point
Copy the full SHA bb6e299View commit details -
Configuration menu - View commit details
-
Copy full SHA for 714e28c - Browse repository at this point
Copy the full SHA 714e28cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1c9d498 - Browse repository at this point
Copy the full SHA 1c9d498View commit details -
Configuration menu - View commit details
-
Copy full SHA for 32fbdce - Browse repository at this point
Copy the full SHA 32fbdceView commit details -
Fix bug in which uses of SSA values processed in
just_fixup!
were n……ot counted This fixes JuliaLang#29253, which was caused by `simple_dce!` erroneously erasing SSA values that did not appear to be used, because these uses were only discovered in `just_fixup!` at the end of iterating over an `IncrementalCompact`.
Configuration menu - View commit details
-
Copy full SHA for 425939e - Browse repository at this point
Copy the full SHA 425939eView commit details -
Fix small bug in JuliaLang#36684
PR JuliaLang#36684 changes `iterate(IncrementalCompact)` to return an extra index, but leaves its arguments unchanged. However, the PR decremented the index argument in a particular recursive call to `iterate`. This caused `iterate` not to recognise that it was done when `allow_cfg_transforms` was turned on.
Configuration menu - View commit details
-
Copy full SHA for 9fd6420 - Browse repository at this point
Copy the full SHA 9fd6420View commit details -
Implement algorithm for updating dominator tree with CFG edge inserti…
…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.
Configuration menu - View commit details
-
Copy full SHA for 524452b - Browse repository at this point
Copy the full SHA 524452bView commit details -
Remove dead blocks as determined by reachability instead of number of…
… predecessors For now, just construct the domtree when we make an `IncrementalCompact` rather than try to update it (the domtree) incrementally.
Configuration menu - View commit details
-
Copy full SHA for c73f19e - Browse repository at this point
Copy the full SHA c73f19eView commit details -
Make domtree construction take
Vector{BasicBlock}
as input instead ……of CFG This is in anticipation of domtrees being added to CFGs.
Configuration menu - View commit details
-
Copy full SHA for 12b34fe - Browse repository at this point
Copy the full SHA 12b34feView commit details -
Add a domtree to every CFG, avoiding constructing them explicitly whe…
…n needed Every time a CFG is created, its corresponding dominator tree is as well.
Configuration menu - View commit details
-
Copy full SHA for 88534d5 - Browse repository at this point
Copy the full SHA 88534d5View commit details -
Update domtrees dynamically when CFGs get modified, and fix bug in dy…
…namic domtree implementation
Configuration menu - View commit details
-
Copy full SHA for 07f5c08 - Browse repository at this point
Copy the full SHA 07f5c08View commit details -
Configuration menu - View commit details
-
Copy full SHA for e2e00b0 - Browse repository at this point
Copy the full SHA e2e00b0View commit details -
Kill statements in blocks that are unreachable, add tests for killing…
… edges This change only affects statements that we have yet to encounter after killing an edge, while iterating through `IncrementalCompact`. Statements in dead blocks that come before the point at which the edge is killed are killed in `kill_edge!`, when the edge is killed.
Configuration menu - View commit details
-
Copy full SHA for 17a6999 - Browse repository at this point
Copy the full SHA 17a6999View commit details -
Fix infinite loop bug in
kill_edge!
If a statement was `nothing`, `kill_edge!` would never move on from trying to kill it because the index wasn't incremented.
Configuration menu - View commit details
-
Copy full SHA for 0b3c63c - Browse repository at this point
Copy the full SHA 0b3c63cView commit details -
Move
BasicBlock
to separate source fileThis 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).
Configuration menu - View commit details
-
Copy full SHA for ff20764 - Browse repository at this point
Copy the full SHA ff20764View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6a250c4 - Browse repository at this point
Copy the full SHA 6a250c4View commit details