-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Move PTLS load emission from codegen to late-gc-lowering #42572
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
Conversation
vchuravy
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@pchintalapudi thanks for opening this PR.
IIRC you had a couple of testcases that we were looking at? Could you add them to test/llvmpasses?
|
@nanosoldier |
|
Your package evaluation job has completed - possible new issues were detected. A full report can be found here. |
|
@vtjnash it is my understanding that currently we need to always redo the Do you see any reason for why emitting the load earlier might be benefitial? (Outside starting to add invariant range annotations.) |
|
I'd suggest passing |
2582097 to
0f4fc14
Compare
|
Actually, I guess later optimization passes are likely to fold that away regardless |
d3728ce to
e5160eb
Compare
|
@pchintalapudi the last thing you will need to fix is the llvmpasses failure https://buildkite.com/julialang/julia-master/builds/4661#78e454c5-f38e-4605-b5ed-0346286be2f0 |
6e8180f to
b3f7f8b
Compare
|
@pchintalapudi Can you rebase this PR on the latest master? This should fix the Downloads tests. |
b3f7f8b to
849ba82
Compare
849ba82 to
d109aa7
Compare
…2572) * Move PTLS load emission from codegen to late-gc-lowering * Address PR comments * Fix tests and move TBAA node generation to codegen_shared * Add check for null metadata node Co-authored-by: Prem Chintalapudi <[email protected]>
…2572) * Move PTLS load emission from codegen to late-gc-lowering * Address PR comments * Fix tests and move TBAA node generation to codegen_shared * Add check for null metadata node Co-authored-by: Prem Chintalapudi <[email protected]>
PTLS load instructions can interfere with optimizing allocations due to being unhoistable and inseparable from their corresponding gc_alloc_obj call. By moving their generation to late-gc-lowering, we can optimize allocation function calls directly without worry about the PTLS load.