[aot] Rewrite the AOT profiler. (#4176)
authorZoltan Varga <vargaz@gmail.com>
Mon, 9 Jan 2017 22:37:57 +0000 (17:37 -0500)
committerGitHub <noreply@github.com>
Mon, 9 Jan 2017 22:37:57 +0000 (17:37 -0500)
commit2ba6bcbc48f8b4e145f9ad450fef8d411b728a8e
tree6492f5adecb290d1fc9c76c4304f8a9fb96c2aac
parent0007e99a87229eab592c179430c4fe3d885e1363
[aot] Rewrite the AOT profiler. (#4176)

* [aot] Rewrite the AOT profiler.

The AOT profiler is used to collect the methods/instances used at runtime.
Usage:
* mono --profile=aot:output=out.aotprof <app>
* mono --aot=profile=out.aotprof <assembly>

The first command will run <app>, collecting the list of methods it uses into the out.aotprof file.
The second command passes the profile file to the AOT compiler to have it generate additional generic instances.

* [docs] Add a section for AOT profiling to the mono(1) man page.

* [build] Collect AOT profile info from building mscorlib in the build profile, and use it when aot-ing the csc assemblies.

* [runtime] Add missing mono-profiler-aot.h file.

* [runtime] Tidy up usage of MONO_PROFILER_API.

* [aot] Improve error handling in the aot profiler.

* [aot] Improve error handling, add more diagnostics.
man/mono.1
mcs/class/aot-compiler/Makefile
mcs/class/corlib/Makefile
mono/metadata/class-internals.h
mono/metadata/domain-internals.h
mono/metadata/domain.c
mono/mini/aot-compiler.c
mono/profiler/mono-profiler-aot.c
mono/profiler/mono-profiler-aot.h [new file with mode: 0644]
mono/utils/mono-compiler.h