Skip to content

Fix critical edges #19020

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

Merged
merged 3 commits into from
Aug 29, 2018
Merged

Fix critical edges #19020

merged 3 commits into from
Aug 29, 2018

Conversation

atrick
Copy link
Contributor

@atrick atrick commented Aug 28, 2018

Handle critical edges consistently in all SIL stages.

This will allow passes that optimize phis to be run in the mandatory
pipeline. It also simplifies SIL invariants and will unblock
much needed simplification of BlockArgument handling.

atrick added 3 commits August 27, 2018 23:55
This will allow passes that optimize phis to be run in the mandatory
pipeline. It also simplifies SIL invariants and will unblock
much needed simplification of BlockArgument handling.
@atrick
Copy link
Contributor Author

atrick commented Aug 28, 2018

@swift-ci test.

@atrick
Copy link
Contributor Author

atrick commented Aug 28, 2018

@swift-ci test source compatibility.

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 763ae67

@atrick
Copy link
Contributor Author

atrick commented Aug 28, 2018

@swift-ci smoke test linux.

1 similar comment
@atrick
Copy link
Contributor Author

atrick commented Aug 28, 2018

@swift-ci smoke test linux.

@gottesmm
Copy link
Contributor

@atrick So this bans non cond br critical edges in raw sil?

@atrick
Copy link
Contributor Author

atrick commented Aug 28, 2018

@gottesmm Yes, this gives raw and canonical SIL the same invariants, so that all our passes and utilities are just correct by definition. It's also one important piece in simplifying the SILBlockArgument APIs in general.

This PR originally fixed SILGen to emit the default switch block, but that's irrelevant after @rjmccall 's commit yesterday that defined away the problem.

@atrick atrick merged commit b3a3220 into swiftlang:master Aug 29, 2018
@atrick atrick deleted the fix-critical-edges branch October 16, 2018 16:23
@atrick atrick restored the fix-critical-edges branch October 16, 2018 16:24
@atrick atrick deleted the fix-critical-edges branch October 16, 2018 16:24
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