Dynamic generic dictionary expansion feature (#32270)
authorFadi Hanna <fadim@microsoft.com>
Tue, 25 Feb 2020 01:57:39 +0000 (17:57 -0800)
committerGitHub <noreply@github.com>
Tue, 25 Feb 2020 01:57:39 +0000 (17:57 -0800)
commit718255964a078883e49ba2c06dfa739aadbfea3b
treeffd27cf70fd3bd58a2946ea890783a547e3d2783
parent3ee2216b9c46e4b9e3cccb98fc0019ff4ebcebb9
Dynamic generic dictionary expansion feature (#32270)

* Dynamic dictionary expansion feature

1) Separate dictionary layout expansion from dictionary expansions on types and methods
2) Dictionary expansions on types and methods done on-demand (if needed), after size checks by codegen (uses new JIT feature)
3) Update the R2R dictionary access stubs to perform size checks (and major cleanup there)
4) Add unit test
5) Update documentation
6) Update JIT interface guid
28 files changed:
docs/design/coreclr/botr/shared-generics.md [new file with mode: 0644]
src/coreclr/src/debug/daccess/nidump.cpp
src/coreclr/src/inc/corinfo.h
src/coreclr/src/jit/importer.cpp
src/coreclr/src/tools/Common/JitInterface/CorInfoTypes.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs
src/coreclr/src/tools/crossgen2/jitinterface/jitwrapper.cpp
src/coreclr/src/vm/amd64/cgenamd64.cpp
src/coreclr/src/vm/appdomain.cpp
src/coreclr/src/vm/arm/stubs.cpp
src/coreclr/src/vm/arm64/stubs.cpp
src/coreclr/src/vm/ceeload.cpp
src/coreclr/src/vm/ceeload.h
src/coreclr/src/vm/clsload.cpp
src/coreclr/src/vm/genericdict.cpp
src/coreclr/src/vm/genericdict.h
src/coreclr/src/vm/generics.cpp
src/coreclr/src/vm/genmeth.cpp
src/coreclr/src/vm/i386/cgenx86.cpp
src/coreclr/src/vm/jithelpers.cpp
src/coreclr/src/vm/jitinterface.cpp
src/coreclr/src/vm/method.cpp
src/coreclr/src/vm/method.hpp
src/coreclr/src/vm/methodtable.inl
src/coreclr/src/vm/methodtablebuilder.cpp
src/coreclr/src/vm/prestub.cpp
src/coreclr/tests/src/Loader/classloader/DictionaryExpansion/DictionaryExpansion.cs [new file with mode: 0644]
src/coreclr/tests/src/Loader/classloader/DictionaryExpansion/DictionaryExpansion.csproj [new file with mode: 0644]