Skip to content

Some improvements in WalkUtils and use the ValueUseDefWalker in the ReleaseDevirtualizer pass #60072

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
Jul 20, 2022

Conversation

eeckstein
Copy link
Contributor

@eeckstein eeckstein commented Jul 15, 2022

Improvements for WalkUtils and EscapeInfo:

  • "merge" the Path and State in WalkUtils into a single WalkingPath. This makes it simpler for clients to configure a path and additional state variables. EscapeInfo now defines EscapePath which includes the projection path and EscapeInfo's specific state variables.
  • Make the WalkerCache part of the WalkUtils, so that not all clients have to re-implement it.
  • Rename walkDownResults -> walkDownAllResults and walkUpOperands -> walkUpAllOperands and make these functions client configurable.

And: use the ValueUseDefWalker instead of the manual use-def walking implementation

@eeckstein eeckstein marked this pull request as draft July 15, 2022 16:26
@eeckstein eeckstein requested a review from Angelogeb July 15, 2022 16:26
@eeckstein eeckstein force-pushed the walkers-in-release-devirtualizer branch 2 times, most recently from cf73fb6 to 4088933 Compare July 19, 2022 17:43
@eeckstein eeckstein changed the title Walkers in release devirtualizer Some improvements in WalkUtils and use the ValueUseDefWalker in the ReleaseDevirtualizer pass Jul 19, 2022
@eeckstein eeckstein marked this pull request as ready for review July 19, 2022 17:46
@eeckstein
Copy link
Contributor Author

@swift-ci test

@eeckstein
Copy link
Contributor Author

@swift-ci benchmark

* "merge" the `Path` and `State` in WalkUtils into a single `WalkingPath`. This makes it simpler for clients to configure a path and additional state variables. EscapeInfo now defines `EscapePath` which includes the projection path and EscapeInfo's specific state variables.
* Make the `WalkerCache` part of the WalkUtils, so that not all clients have to re-implement it.
* Rename `walkDownResults` -> `walkDownAllResults` and `walkUpOperands` -> `walkUpAllOperands` and make these functions client configurable.
@eeckstein eeckstein force-pushed the walkers-in-release-devirtualizer branch from 4088933 to 872ded9 Compare July 20, 2022 12:00
@eeckstein
Copy link
Contributor Author

@swift-ci smoke test

@eeckstein eeckstein merged commit d1220fd into swiftlang:main Jul 20, 2022
@eeckstein eeckstein deleted the walkers-in-release-devirtualizer branch July 20, 2022 14:14
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