-
Notifications
You must be signed in to change notification settings - Fork 215
Open
Labels
area-NativeAOT-LLVMLLVM generation for Native AOT compilation (including Web Assembly)LLVM generation for Native AOT compilation (including Web Assembly)
Description
See dotnet/runtime#108235, which uses the thunk pool and will not work for us.
Rough idea:
- Produce fat function pointers in interface resolve.
- Teach interface call lowering fat function pointer dispatch.
- Limit the impact of this on code quality by:
- Recording all the IDIC-implementing interfaces during scanning.
- Only using the fat function pointer aware lowering for calls to interfaces that the IDIC implementations implement. So if for example we have
[IDICImpl] IImplOne : ISomething, [IDICImpl] IImplTwo : ISomethingduring scanning, the final set of affected methods would be those onISomethingandIImplOnewithIImplTwo, since the latter "implement themselves".
Metadata
Metadata
Assignees
Labels
area-NativeAOT-LLVMLLVM generation for Native AOT compilation (including Web Assembly)LLVM generation for Native AOT compilation (including Web Assembly)