JIT: force all local var ref counts to be accessed via API (dotnet/coreclr#18979)
authorAndy Ayers <andya@microsoft.com>
Wed, 18 Jul 2018 21:35:08 +0000 (14:35 -0700)
committerGitHub <noreply@github.com>
Wed, 18 Jul 2018 21:35:08 +0000 (14:35 -0700)
commit062b60024d3f65617dc948b7575ce4d89bcabb20
tree61ec3eb49a8ef026de70f491baafdd93c4e88758
parentc078700127230992b2ee6f15a325e1c0f28702fa
JIT: force all local var ref counts to be accessed via API (dotnet/coreclr#18979)

This is a preparatory change for auditing and controlling how local
variable ref counts are observed and manipulated.

See dotnet/coreclr#18969 for context.

No diffs seen locally. No TP impact expected.

There is a small chance we may see some asserts in broader testing
as there were places in original code where local ref counts were
incremented without checking for possible overflows. The new APIs
will assert for overflow cases.

Commit migrated from https://github.com/dotnet/coreclr/commit/b2842bbef5162383f7bf67de2976f2c21dbfdb1d
18 files changed:
src/coreclr/src/jit/assertionprop.cpp
src/coreclr/src/jit/codegencommon.cpp
src/coreclr/src/jit/compiler.h
src/coreclr/src/jit/compiler.hpp
src/coreclr/src/jit/emit.cpp
src/coreclr/src/jit/gcencode.cpp
src/coreclr/src/jit/gcinfo.cpp
src/coreclr/src/jit/gentree.cpp
src/coreclr/src/jit/lclvars.cpp
src/coreclr/src/jit/liveness.cpp
src/coreclr/src/jit/lower.cpp
src/coreclr/src/jit/lowerxarch.cpp
src/coreclr/src/jit/lsra.cpp
src/coreclr/src/jit/lsrabuild.cpp
src/coreclr/src/jit/morph.cpp
src/coreclr/src/jit/optcse.cpp
src/coreclr/src/jit/regalloc.cpp
src/coreclr/src/jit/scopeinfo.cpp