-
-
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
Refine liveness of phi and select #24035
Conversation
If both inputs are rooted then we don't need to root the result. Rename `LoadRefinements` to `Refinements` since it's not load specific anymore. Fix #22421
9362dd0
to
5769cb0
Compare
Tests added. |
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.
Implementation looks fine to me.
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.
Seems good to me. @Keno?
Bisection suggests that this is causing #24098 |
OK, I think the issue is that since the incomming value of phi node doesn't dominate the phi node, we can't simply refine phi to the incomming value since they might not be the "same value" anymore. I'll try to fix it later (hopefully 1-2 days) and if anyone need it urgently feel free to partially revert by commenting out julia/src/llvm-late-gc-lowering.cpp Lines 865 to 866 in 5769cb0
julia/src/llvm-late-gc-lowering.cpp Lines 870 to 871 in 5769cb0
|
If both inputs are rooted then we don't need to root the result.
Rename
LoadRefinements
toRefinements
since it's not load specific anymore.Fix #22421
This is based on #23993 to reduce conflict.
llvmpasses test will come later.
The handling of
LiftPhi
andLiftSelect
isn't very pretty but hopefully good enough ;-p...