Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFadi Hanna <fadim@microsoft.com>2018-03-02 21:55:13 +0300
committerFadi Hanna <fadim@microsoft.com>2018-03-02 21:55:13 +0300
commitf65acd118e398531c49086f46a7d89494a086547 (patch)
tree769e50f72d6bf7544524c4f55350679a569562d2 /src/ILCompiler.WebAssembly
parent87e4f1151a4be22ac6cbecf373a5dd31e42537f8 (diff)
Sealed VTables implementation for CoreRT/ProjectX (tested on both). Changes include:
1) New node type for the sealed vtables 2) Logic in EETypeNode to emit the proper sealed vtable related bits, and not emit sealed newslot methods in the regular vtable 3) Changes in the algorithm that computes the virtual method slot to handle sealed vtable entries 4) Avoid creation of interface dispatch maps for special array types (mdarrays and arrays of pointers) Current size gains we get with the shared library is about 3% for amd64 ret on ProjectX. Average app size reduction is about 5% [tfs-changeset: 1690448]
Diffstat (limited to 'src/ILCompiler.WebAssembly')
-rw-r--r--src/ILCompiler.WebAssembly/src/Compiler/DependencyAnalysis/WebAssemblyVTableSlotNode.cs2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/ILCompiler.WebAssembly/src/Compiler/DependencyAnalysis/WebAssemblyVTableSlotNode.cs b/src/ILCompiler.WebAssembly/src/Compiler/DependencyAnalysis/WebAssemblyVTableSlotNode.cs
index 6f7897a8f..e48163267 100644
--- a/src/ILCompiler.WebAssembly/src/Compiler/DependencyAnalysis/WebAssemblyVTableSlotNode.cs
+++ b/src/ILCompiler.WebAssembly/src/Compiler/DependencyAnalysis/WebAssemblyVTableSlotNode.cs
@@ -62,7 +62,7 @@ namespace ILCompiler.DependencyAnalysis
if (!relocsOnly)
{
var tableOffset = EETypeNode.GetVTableOffset(factory.Target.PointerSize) / factory.Target.PointerSize;
- objData.EmitInt(tableOffset + VirtualMethodSlotHelper.GetVirtualMethodSlot(factory, _targetMethod));
+ objData.EmitInt(tableOffset + VirtualMethodSlotHelper.GetVirtualMethodSlot(factory, _targetMethod, _targetMethod.OwningType));
}
return objData.ToObjectData();
}