-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[pmo] Teach PMO that in ossa, load [take] invalidates an available va… #25354
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
[pmo] Teach PMO that in ossa, load [take] invalidates an available va… #25354
Conversation
@swift-ci smoke test |
d7aa40f
to
657dc5b
Compare
@swift-ci smoke test |
657dc5b
to
292b745
Compare
@swift-ci smoke test |
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.
I just started reviewing. I'll need to come back to it later today/tomorrow.
@@ -233,7 +234,9 @@ struct AvailableValue { | |||
InsertionPoints.set_union(Other.InsertionPoints); | |||
} | |||
|
|||
void addInsertionPoint(StoreInst *I) & { InsertionPoints.insert(I); } | |||
void addInsertionPoint(SILInstruction *I) & { |
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.
Did you do this because you have a follow up PR that adds different types of insertion points? By itself this change doesn't make sense. It's better to raise the assumed type up to the interface.
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.
Sure. I realized I did this for a stupid reason.
Andy and I talked a bit about this. There are larger changes he wants to make. I am going to add the comments/etc and then merge. This pass is the first poster child for how load/store promotion is done on ossa so it is the place where I am making tools. It is important that it is easy to read as a result (and this also will get rid of some technical debt as well). |
…lue. Example would be a case where we dynamically control if the load [take] occurs and the load [take] happens with conditional control flow. This was exposed by the throwing_initializer and failable_initializer interpreter tests in the test of PolarBear(n:before:during).
292b745
to
ced5f4a
Compare
@swift-ci smoke test and merge |
…lue.
Example would be a case where we dynamically control if the load [take] occurs
and the load [take] happens with conditional control flow.
This was exposed by the throwing_initializer and failable_initializer
interpreter tests in the test of PolarBear(n:before:during).