-
Notifications
You must be signed in to change notification settings - Fork 5k
Update '[GeneratedComInterface]' to emit ILC-friendly vtables for RVA folding #114468
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
Comments
Tagging subscribers to this area: @dotnet/interop-contrib |
Can InterfaceImplementationVtable and InterfaceImplementationVtableImpl be a single type?
This is better for native AOT and worse for JIT-based runtimes (more type loading). I think it is a fine tradeoff to take, just making sure that it is understood. |
I wasn't sure whether that interface would have other static field initializers potentially interfering with ILC (I think it has one for |
Double checked, I actually mixed things up with This has the cctor, but Also with the new codegen we can get rid of the lazy-init of the vtable in |
Could we move a bit further and remove the |
Now that:
[FixedAddressValueType]
can be unloaded (Store pinned static fields in the Pinned Object Heap. #89895)We could optimize the codegen for
[GeneratedComInterface]
to preinitialize the CCW vtable:This could instead be something like this:
This would be fully foldable on Native AOT, so that it gets:
cc. @jkoritzinsky
The text was updated successfully, but these errors were encountered: