Skip to content

[semantic-arc] Add support for specifying the specific sub-semantic arc transforms to perform from the command line. #33979

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

Conversation

gottesmm
Copy link
Contributor

This involved:

  1. Refactoring the ARC peephole optimizer/Phi optimizer into separate transforms.
  2. Moving the ARC peephole optimizer (SemanticARCOptVisitor) into its own file.
  3. Adding support in SemanticARCOpts (the main place the actual transform is specified) for a compiler developer to specify with an asserts compiler the specific transforms to run.

This is in preparation for adding transforms like the coroutine lifetime extender that should be run after peepholes/guaranteed phi arg elimination, but that we want to also be able to test separately.

…e visitor to its own function that works on the SemanticARCContext.
… semantic-arc optimizations.

SemanticARCOpts for maintainance reasons is becoming a series of small
optimization passes with a little pass manager that runs them. Given that, I
want to be able to be able to run subsets of these transforms for testing
reasons while normally running them in series.

This is in preparation for landing the coroutine lifetime extender and the
auto-coroutinizer.
@gottesmm
Copy link
Contributor Author

@swift-ci smoke test

@gottesmm
Copy link
Contributor Author

This is just pure refactoring.

@gottesmm gottesmm merged commit 983ee29 into swiftlang:master Sep 17, 2020
@gottesmm gottesmm deleted the pr-6fc6a6364dc218208424a3de3cc104bc03cbce80 branch September 17, 2020 13: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.

1 participant