forked from dotnet/runtime
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[mono][jit] Fix and optimize llvmonly+gsharedvt code generation (dotn…
…et#61117) * [mono][jit] Revert parts of 62eafc1. The new approach doesn't work because it requires gsharedvt out wrappers with signatures which might not exist in the program. * Fix interp->aot calls to gsharedvt methods, they don't need a gsharedvt out wrapper. * Fix the initialization of info->invoke_impl in mini_llvmonly_init_delegate (). Also initialize del->method there instead of doing it in generated code. * Fix interp entry for gsharedvt methods. * Extract vtable.interp_vtable into a MonoVTableEEData structure so more per-vtable ee data can be added later. * Enable gsharedvt on wasm as an experiment. * Add a fastpath for gsharedvt virtual calls. * Fix/optimize interp entries for methods which cannot be AOTed. * Instead of obtaining the interp entry wrapper using a JIT icall, store it as an AOT constant/rgctx entry. * For gsharedvt methods, collect the arguments and call into the interpreter directly instead of using a gsharedvt out + interp entry wrapper. * [mono][jit] Avoid computing a vtable arg for ctors which don't need it. This can happen if the ctor is implemented as an intrinsics like System.ByReference (). * [mono][jit] Allow inline rgctx fetches during some parts of the decompose pass. * [mono][jit] Add more specialized imt functions in llvmonly mode. * [mono][aot] Fix the addition of generic methods from profiles. Same as 0666ebc but for generic methods. * Disable gsharedvt on wasm.
- Loading branch information
Showing
18 changed files
with
402 additions
and
114 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.