Open
Description
Overview
This issue tracks progress on goals for Mono AOT size savings planned in .NET 8 and .NET 9. Outcome of this effort is to reduce disk size in iOS and WASM apps that use Mono AOT engine. The work will be organised and tracked with GitHub issues. Some of the listed items can be considered as user stories and will require further break-down of work, while the others are plain tasks.
General optimizations
- Deduplication of symbols by using dedup/linkonce features #80419
- [mono][aot] Avoid generating rgctx fetch trampolines in generic sharing #82906
- [mono][aot] Further optimizations for dedup improvement #83973
Experimental optimizations
- Feature Request: Fully Support AoT Compilation & CIL Stripping for Android #44855
- [mono][aot] Prevent method to LLVM function mapping where possible #82936
- [mono][aot] Remove method body for inlined methods #82907
- [mono][aot] Enable direct call transformation where caller requires no initialization #82224
- Optimizing generics by using ILCompiler dependency graph and profile guided optimization in Mono AOT #80941
- Mono AOT full program analyses and interprocedural optimizations #80942
- Allow specialization for typeof(T) pattern in Mono AOT compiler #80980
- Mono AOT image size profiling #82101
- [mono][aot] Optimize stack unwind data for exception handling #82938
- Trim inflated gshared methods in Vector/Scalar classes when SIMD is enabled
- [mono] Investigate rewriting Scalar<T> methods so the linker can replace them with stubs #71430
- [mono] Introduce MonoAotMethodSupportedTypesAttribute for generic methods to prevent unnecessary GSHAREDVT fallbacks in the AOT compiler #71431
- [mono] Investigate performance impact of using interpreter as the default fallback for generics instead of GSHAREDVT methods #71482
/cc: @fanyang-mono @jandupej @ivanpovazan @LeVladIonescu @lambdageek @vargaz @SamMonoRT @marek-safar