[interp] Replace ldloca + ldfld/stfld pairs with ldloc/stloc (#33952)
authormonojenkins <jo.shields+jenkins@xamarin.com>
Tue, 24 Mar 2020 11:59:18 +0000 (07:59 -0400)
committerGitHub <noreply@github.com>
Tue, 24 Mar 2020 11:59:18 +0000 (13:59 +0200)
commit2c4fd803a60c518edfc69b3860bec09de77ec8a5
tree79a080c850a67e2bd9b4f5a9a23de87821230916
parent3d8073daba7a84fe2692816763ada490b6353359
[interp] Replace ldloca + ldfld/stfld pairs with ldloc/stloc (#33952)

If loaded/stored field is the only field of the valuetype. This is meant to mainly optimize IntPtr accesses, which contains a single void* field and is heavily used in Unsafe intrinsics.

Co-authored-by: BrzVlad <BrzVlad@users.noreply.github.com>
src/mono/mono/mini/interp/interp-internals.h
src/mono/mono/mini/interp/interp.c
src/mono/mono/mini/interp/mintops.h
src/mono/mono/mini/interp/transform.c
src/mono/mono/mini/interp/transform.h