-
-
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
Eliminate write barrier branches from codegen and late-gc-lowering #43384
Closed
pchintalapudi
wants to merge
25
commits into
JuliaLang:master
from
pchintalapudi:pc/array-branch-elimination
Closed
Eliminate write barrier branches from codegen and late-gc-lowering #43384
pchintalapudi
wants to merge
25
commits into
JuliaLang:master
from
pchintalapudi:pc/array-branch-elimination
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ViralBShah
added
compiler:codegen
Generation of LLVM IR and native code
GC
Garbage collector
labels
Dec 12, 2021
pchintalapudi
force-pushed
the
pc/array-branch-elimination
branch
from
December 14, 2021 20:59
2e71a53
to
aba66d8
Compare
pchintalapudi
force-pushed
the
pc/array-branch-elimination
branch
from
December 26, 2021 06:42
aba66d8
to
3831254
Compare
This was referenced Dec 26, 2021
Since my branches are part of a fork, I've created a PR comparing this one and the data load hoisting PR immediately before it here: pchintalapudi#2 |
pchintalapudi
force-pushed
the
pc/array-branch-elimination
branch
from
January 5, 2022 07:08
856923e
to
7a6e5e5
Compare
Branches in late-gc-lower cannot be removed, as they are dependent on unobservable GC low bit stores and cannot be forwarded from the original type pointer. |
pchintalapudi
force-pushed
the
pc/array-branch-elimination
branch
2 times, most recently
from
January 7, 2022 08:59
6e1184f
to
91cb322
Compare
pchintalapudi
force-pushed
the
pc/array-branch-elimination
branch
from
January 14, 2022 01:50
91cb322
to
0bf738b
Compare
pchintalapudi
force-pushed
the
pc/array-branch-elimination
branch
from
January 22, 2022 21:59
0bf738b
to
76157b4
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Branches on the how flag of freshly allocated arrays for write barriers are unnecessary and could block escape analysis of arrays in the future. This PR proposes to eliminate those branches as generated in codegen and late-gc-lowering.
Compilation timing comparison:
PR:
Godbolt comparison:
Master: https://godbolt.org/z/5KrTqnW4e
PR: https://godbolt.org/z/oP6z4nT5a
This PR depends on #43547 and #43487 for array optimization improvements and allocation identification, and #43057 for escape analysis improvements.