Skip to content

Merge more sibling types in TypeMerging #5452

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 1 commit into from
Jan 25, 2023
Merged

Merge more sibling types in TypeMerging #5452

merged 1 commit into from
Jan 25, 2023

Conversation

tlively
Copy link
Member

@tlively tlively commented Jan 25, 2023

TypeMerging was previously able to merge identical root types and identical
siblings that were children of a distinct type, but only when the siblings had
the same top-level structure as their parent. Improve the optimization by also
merging identical children when they have a different top-level structure from
their parent.

This solution is not fully general because it does not merge shape-refining
children of separate types that would become identical siblings only after their
parent types are merged, but that full generality would require either
modifying Valmari-Lehtinen DFA minimization or performing the DFA minimization
in a loop until reaching a fixpoint.

@tlively tlively requested a review from kripken January 25, 2023 20:59
TypeMerging was previously able to merge identical root types and identical
siblings that were children of a distinct type, but only when the siblings had
the same top-level structure as their parent. Improve the optimization by also
merging identical children when they have a different top-level structure from
their parent.

This solution is not fully general because it does not merge shape-refining
children of separate types that would become identical siblings only after their
parent types are merged, but that full generality would require either
modifying Valmari-Lehtinen DFA minimization or performing the DFA minimization
in a loop until reaching a fixpoint.
@tlively
Copy link
Member Author

tlively commented Jan 25, 2023

Current dependencies on/for this PR:

This comment was auto-generated by Graphite.

@tlively tlively force-pushed the type-merge-siblings branch from cac0318 to 1ca051d Compare January 25, 2023 21:00
@tlively tlively merged commit 17d120a into main Jan 25, 2023
@tlively tlively deleted the type-merge-siblings branch January 25, 2023 21:43
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.

2 participants