diff options
author | Morgan Brown <morganbr@users.noreply.github.com> | 2018-08-07 11:21:02 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-07 11:21:02 +0300 |
commit | 914360af01f97f5b49c104c5a0b38ea879849d9f (patch) | |
tree | bbe4d5c3faf47b71f1f1c23a2ed19616c31c187e /src/ILCompiler.Compiler | |
parent | bdc6bfbef12b94db9dedef90cb39da88949f61ed (diff) |
Optimize WASM arguments and returns (#6181)
Use LLVM arguments and returns where possible (no GC references) instead of passing them on the shadow stack. The argument optimization saves 3% optimized (5% compressed). The return change adds about 0.5% to the uncompressed file, but saves about 6% compressed. They both save size in debug. This also greatly simplifies debugging and reading code. Also includes a fix to the class constructor runner where it was calling cctors with the wrong signature and some test fixes.
Diffstat (limited to 'src/ILCompiler.Compiler')
-rw-r--r-- | src/ILCompiler.Compiler/src/Compiler/CompilerTypeSystemContext.Mangling.cs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/ILCompiler.Compiler/src/Compiler/CompilerTypeSystemContext.Mangling.cs b/src/ILCompiler.Compiler/src/Compiler/CompilerTypeSystemContext.Mangling.cs index 720f06114..ace374f04 100644 --- a/src/ILCompiler.Compiler/src/Compiler/CompilerTypeSystemContext.Mangling.cs +++ b/src/ILCompiler.Compiler/src/Compiler/CompilerTypeSystemContext.Mangling.cs @@ -47,5 +47,24 @@ namespace ILCompiler } } } + + partial class UnboxingThunk : IPrefixMangledMethod + { + MethodDesc IPrefixMangledMethod.BaseMethod + { + get + { + return _targetMethod; + } + } + + string IPrefixMangledMethod.Prefix + { + get + { + return "unbox"; + } + } + } } } |