Interface call devirtualization: VM side of changes
authorAndy Ayers <andya@microsoft.com>
Thu, 16 Mar 2017 15:30:17 +0000 (08:30 -0700)
committerAndy Ayers <andya@microsoft.com>
Thu, 16 Mar 2017 20:51:36 +0000 (13:51 -0700)
commit2d6d160c030ab7f2a588bcdcc4ecd838967d9048
treec7edd3f6e85d6d21c96973deed1eeab9d53fb089
parentdf5a9854b4f429a0c799a7f4616030745045b518
Interface call devirtualization: VM side of changes

Extend resolveVirtualMethod to take in the owner type needed to resolve
shared generic interface calls, and implement VM support for interface
call devirtualization. Add a check that the class presented by the jit
implements the interface, to catch cases where the IL is missing type
casts.

Update jit GUID, SPMI and zap to reflect the changed signature.

Commit migrated from https://github.com/dotnet/coreclr/commit/00f13f2fb04c21fc1675ce264ef7291cbcec67a1
13 files changed:
src/coreclr/src/ToolBox/superpmi/superpmi-shared/icorjitinfoimpl.h
src/coreclr/src/ToolBox/superpmi/superpmi-shared/lwmlist.h
src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.cpp
src/coreclr/src/ToolBox/superpmi/superpmi-shared/methodcontext.h
src/coreclr/src/ToolBox/superpmi/superpmi-shim-collector/icorjitinfo.cpp
src/coreclr/src/ToolBox/superpmi/superpmi-shim-counter/icorjitinfo.cpp
src/coreclr/src/ToolBox/superpmi/superpmi-shim-simple/icorjitinfo.cpp
src/coreclr/src/ToolBox/superpmi/superpmi/icorjitinfo.cpp
src/coreclr/src/inc/corinfo.h
src/coreclr/src/vm/jitinterface.cpp
src/coreclr/src/vm/jitinterface.h
src/coreclr/src/zap/zapinfo.cpp
src/coreclr/src/zap/zapinfo.h