Generic dictionary minor performance improvement and simplification for R2R (#5690)
authorFadi Hanna <fadim@microsoft.com>
Tue, 21 Jun 2016 18:51:05 +0000 (11:51 -0700)
committerGitHub <noreply@github.com>
Tue, 21 Jun 2016 18:51:05 +0000 (11:51 -0700)
commitb9f5ae88cc49836c8d31f07db7800707165cdb06
treec5d6246379b51c19e9c79489364da1e2a6fe79f5
parentfb79613c44df5ad80831dba1460ffb14dd6497a3
Generic dictionary minor performance improvement and simplification for R2R (#5690)

A set of refactoring changes to slighly improve the performance of generic dictionary access on R2R images, and simplifying the codebase:
    1) Removing dependency on CEEInfo::ComputeRuntimeLookupForSharedGenericTokenStatic (and deleting the API).
    2) Stop parsing the generic type/method signatures when generating the R2R dictionary lookup assembly stub.
    3) Avoid re-encoding the generic type/method signatures in a new in-memory blob using a SigBuilder  (signatures used directly from the R2R image)
    4) Moved the parsing/loading of type/method signatures to Dictionary::PopulateEntry()
    5) Dictionary index and slot number are now encoded in the generated assembly stub instead of the signature (stub takes a pointer to a data blob, which contains the signature, the dictionary index and slot, and the module pointer)
15 files changed:
src/inc/corinfo.h
src/vm/amd64/cgenamd64.cpp
src/vm/arm64/stubs.cpp
src/vm/codeman.cpp
src/vm/codeman.h
src/vm/crossgencompile.cpp
src/vm/genericdict.cpp
src/vm/genericdict.h
src/vm/i386/cgenx86.cpp
src/vm/jithelpers.cpp
src/vm/jitinterface.cpp
src/vm/jitinterface.h
src/vm/prestub.cpp
src/vm/readytoruninfo.h
src/zap/zapinfo.cpp