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

Move generic delegates vtable generation into projections #1411

Merged
merged 7 commits into from
Dec 16, 2023

Conversation

manodasanW
Copy link
Member

As part of the previous AOT changes, the generic delegate vtable generation was handled by the AOT optimizer using a lookup table. But this turned out that each of the projections got a lookup table when that wasn't the intention as it is supposed to be for consumers of projections. This lookup table in projections also made those types not trimming friendly. Given delegates have a known set of interfaces that they implement unlike classes which needs to deal with covariance, this PR moves the delegate vtable generation into the projection.

With this PR, when a delegate is being used by a projection, it would make sure the generic instantiation class for the delegate has been initialized and its vtable entries have been added so that on lookup they are found. The AOT optimizer will continue to handle cases where delegates are passed as object and the projection isn't aware of that.

@manodasanW manodasanW merged commit 444238b into staging/AOT Dec 16, 2023
1 of 8 checks passed
@manodasanW manodasanW deleted the manodasanw/delegateoptimization branch December 16, 2023 02:04
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