[runtime] Implement runtime support for inflated wrapper and generic dedup (#5349)
commit50fa04c1365f68f309c6d0613c96672deb0d07fc
authorAlexander Kyte <alexmkyte@gmail.com>
Wed, 15 Nov 2017 14:55:21 +0000 (15 09:55 -0500)
committerLudovic Henry <luhenry@microsoft.com>
Wed, 15 Nov 2017 14:55:21 +0000 (15 09:55 -0500)
tree2f9e759825425ae59a79741eacb073aee836d48a
parent115b29014394c9548e743f8580c3d96466dc1cf8
[runtime] Implement runtime support for inflated wrapper and generic dedup (#5349)

* [runtime] Support excluding or choosing to emit only inflated methods

* [runtime] Only write cache if changed, so can be used by Makefiles

* [runtime] Thread state through multiple mono_compile_assembly calls

* [runtime] Emit skipped methods in dedup module

* [runtime] Use AOT attribute to mark dummy dedup module

* [runtime] Expose and use can_dedup for AOT compiler+runtime

* [runtime] Add missing cases to the mangler

* [runtime] Fix direct calls with dedup

* [runtime] Implement runtime support for finding deduped code

* [runtime] Refactor dedup state setup into new function

* [runtime] Add in dedup debugging aid / external visibility

Gives a demo on how to make mangled method names externally visible

* [runtime] Log dedup statistics
man/mono.1
mono/mini/aot-compiler.c
mono/mini/aot-compiler.h
mono/mini/aot-runtime.c
mono/mini/driver.c
mono/mini/mini-llvm.c
mono/mini/mini-runtime.c
mono/mini/mini.h