Skip to content

[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

Conversation

gottesmm
Copy link
Contributor

…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).

@gottesmm gottesmm requested a review from atrick June 11, 2019 17:21
@gottesmm
Copy link
Contributor Author

@swift-ci smoke test

@gottesmm gottesmm force-pushed the pr-3e14153374d6cc2731dac887138c185dcc5de96f branch from d7aa40f to 657dc5b Compare June 11, 2019 17:57
@gottesmm
Copy link
Contributor Author

@swift-ci smoke test

3 similar comments
@gottesmm
Copy link
Contributor Author

@swift-ci smoke test

@gottesmm
Copy link
Contributor Author

@swift-ci smoke test

@gottesmm
Copy link
Contributor Author

@swift-ci smoke test

@gottesmm gottesmm force-pushed the pr-3e14153374d6cc2731dac887138c185dcc5de96f branch from 657dc5b to 292b745 Compare June 11, 2019 22:17
@gottesmm
Copy link
Contributor Author

@swift-ci smoke test

3 similar comments
@gottesmm
Copy link
Contributor Author

@swift-ci smoke test

@gottesmm
Copy link
Contributor Author

@swift-ci smoke test

@gottesmm
Copy link
Contributor Author

@swift-ci smoke test

Copy link
Contributor

@atrick atrick left a 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) & {
Copy link
Contributor

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.

Copy link
Contributor Author

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.

@gottesmm
Copy link
Contributor Author

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).
@gottesmm gottesmm force-pushed the pr-3e14153374d6cc2731dac887138c185dcc5de96f branch from 292b745 to ced5f4a Compare July 25, 2019 00:02
@gottesmm
Copy link
Contributor Author

@swift-ci smoke test and merge

@swift-ci swift-ci merged commit 4aae594 into swiftlang:master Jul 25, 2019
@gottesmm gottesmm deleted the pr-3e14153374d6cc2731dac887138c185dcc5de96f branch July 25, 2019 03:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants