Continue updating previous generic dictionaries after expansion (#40355)
authorTomáš Rylek <trylek@microsoft.com>
Fri, 7 Aug 2020 23:17:32 +0000 (01:17 +0200)
committerGitHub <noreply@github.com>
Fri, 7 Aug 2020 23:17:32 +0000 (01:17 +0200)
commitd1c7946bb0892005a58ec647e3a6d8f3514cdc6b
treee1d8ad604422259b2cf0e58d257ab99632a8d742
parentde6380e65a8d201900e7983a30a5c870d229ca3d
Continue updating previous generic dictionaries after expansion (#40355)

Fix perf regression after introduction of expandable generic
dictionaries. When we expand a generic dictionary, we should back
propagate the change to previously allocated shorter versions of
the same dictionary, otherwise already running JITted code may
continue referring to the "old version" of the dictionary implying
repeated slow path generic lookups.

Thanks

Tomas
src/coreclr/src/jit/importer.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/method.cpp
src/coreclr/src/vm/methodtable.cpp
src/coreclr/src/vm/methodtable.h
src/coreclr/src/vm/methodtable.inl
src/coreclr/src/vm/methodtablebuilder.cpp