[Mono] Add the capability of trimming IL code of individual methods (#86722)
authorFan Yang <52458914+fanyang-mono@users.noreply.github.com>
Fri, 16 Jun 2023 00:54:31 +0000 (20:54 -0400)
committerGitHub <noreply@github.com>
Fri, 16 Jun 2023 00:54:31 +0000 (20:54 -0400)
commit9fc19a1f9b00ad9631a81fbe4b7b2141f9209e32
treeeea022cf719e94cedccb81c999cf45f6ca10c56c
parent3afe6bd73788bd941dc06e4160616dc100bbcc43
[Mono] Add the capability of trimming IL code of individual methods (#86722)

* Add the capability of trimming individual methods

* Fix build errors

* Remove printf's

* Add the option to use compiled-methods-outfile

* Avoid trimming shared methods when they are still in use

* Add parameter description

* Add the option to trim compiled methods

* Address review feedback

* Add metadata MethodTokenFile to CompiledAssemblies

* Add GUID checks and use metadata of assemblies

* Create smaller functions and use hex value

* Update src/tasks/AotCompilerTask/MonoAOTCompiler.cs

Co-authored-by: Ankit Jain <radical@gmail.com>
* Move parameter validation code

* Update src/tasks/MonoTargetsTasks/ILStrip/ILStrip.cs

Co-authored-by: Ankit Jain <radical@gmail.com>
* Update src/tasks/MonoTargetsTasks/ILStrip/ILStrip.cs

Co-authored-by: Ankit Jain <radical@gmail.com>
* Update src/tasks/MonoTargetsTasks/ILStrip/ILStrip.cs

Co-authored-by: Ankit Jain <radical@gmail.com>
* Update src/tasks/MonoTargetsTasks/ILStrip/ILStrip.cs

Co-authored-by: Ankit Jain <radical@gmail.com>
* Update src/tasks/MonoTargetsTasks/ILStrip/ILStrip.cs

Co-authored-by: Ankit Jain <radical@gmail.com>
* Update src/tasks/MonoTargetsTasks/ILStrip/ILStrip.cs

Co-authored-by: Ankit Jain <radical@gmail.com>
* Update src/tasks/MonoTargetsTasks/ILStrip/ILStrip.cs

Co-authored-by: Ankit Jain <radical@gmail.com>
* Update src/tasks/MonoTargetsTasks/ILStrip/ILStrip.cs

Co-authored-by: Ankit Jain <radical@gmail.com>
* Add more error handling

* Provide a list of trimmed assemblies as output

* Update src/tasks/MonoTargetsTasks/ILStrip/ILStrip.cs

Co-authored-by: Ankit Jain <radical@gmail.com>
* Address coding style feedbacks

* Fix var anmes

* Delete trimmed assemblies after copy

---------

Co-authored-by: Ankit Jain <radical@gmail.com>
src/mono/mono/mini/aot-compiler.c
src/mono/sample/HelloWorld/HelloWorld.csproj
src/mono/sample/HelloWorld/Makefile
src/tasks/AotCompilerTask/MonoAOTCompiler.cs
src/tasks/MonoTargetsTasks/ILStrip/ILStrip.cs