summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorAndy Ayers <andya@microsoft.com>2017-04-01 00:56:33 -0700
committerGitHub <noreply@github.com>2017-04-01 00:56:33 -0700
commita7ab04cfb152f133d130948709dd5ac4f1494a19 (patch)
tree0a09e6ece32c4e0469970ed95b7981745282222c /CMakeLists.txt
parent7c8941ab25b3a4fa49c2a61b707075309b61a26e (diff)
downloadcoreclr-a7ab04cfb152f133d130948709dd5ac4f1494a19.tar.gz
coreclr-a7ab04cfb152f133d130948709dd5ac4f1494a19.tar.bz2
coreclr-a7ab04cfb152f133d130948709dd5ac4f1494a19.zip
Jit: fix a few issues with single def local tracking (#10633)
Fixes for three issues that came up in desktop testing. 1. Don't track class types for locals when in import only mode, since the jit may be looking at an uninstantiated generic method. In these cases the jit's use of TYP_REF to represent CORINFO_TYPE_VAR confuses the tracking code. In import only mode the jit is not going to use the information, so there is no need to track it at all. Import only mode is tied to verification and CoreCLR runs in full trust mode, so no test was added. 2. Allow `lvaUpdateClass` to be called more than once but assert that the second and subsequent calls provide the exact same update as the first call. This can happen for single def ref class locals whose definition block is reimported. Reimportation is triggered by some tolerable non-ref type mismatches at block joins and so ref type information should be consistent for each importation attempt. Add a couple of IL test cases translated from destkop MC++ tests that will trigger this kind of reimportation. 3. Bail out of devirtualization (for desktop only) if the base class has precise initialization semantics, since desktop seems to trigger class initialization for ref type callvirts (contrary to ECMA355 I.8.9.5). See #4853 for some discussion. Since this is desktop only behavior no test was added.
Diffstat (limited to 'CMakeLists.txt')
0 files changed, 0 insertions, 0 deletions