Skip to content
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

Convert apply to be iterative. #64

Merged
merged 3 commits into from
Sep 12, 2023
Merged

Convert apply to be iterative. #64

merged 3 commits into from
Sep 12, 2023

Conversation

mjp41
Copy link
Member

@mjp41 mjp41 commented Sep 11, 2023

This converts the PassDef::apply to be iterative rather than recursive.

Matthew Parkinson added 3 commits September 11, 2023 14:02
The previous implementation mixed the matching phase for a set of
children, with recursing into the set of children.

This change pulls them into separate phases to make it easier to turn
this into a worklist based design.

Simplified structure further
This performs an interactive algorithm for traversing the rewrite phase.
@mjp41 mjp41 requested a review from sylvanc September 11, 2023 20:29
@mjp41
Copy link
Member Author

mjp41 commented Sep 11, 2023

This is showing a 3x improvement on throughput for Rego. I think we should take it. Assuming Verona can be made to work with it.

@mjp41 mjp41 merged commit bdc91d3 into microsoft:main Sep 12, 2023
7 checks passed
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