Simplified MinOpts GC ref tracking. (dotnet/coreclr#9231)
authorPeter Kukol <pkukol@users.noreply.github.com>
Thu, 23 Feb 2017 16:13:34 +0000 (09:13 -0700)
committerGitHub <noreply@github.com>
Thu, 23 Feb 2017 16:13:34 +0000 (09:13 -0700)
commite789d32c14a6910190daf2e7344a0e92b0ebda93
tree823887073ca71b5d61d1002d012b1aba25f0fb11
parent4b312154a8ce905d31aa6f8ee12c6fe21210c04b
Simplified MinOpts GC ref tracking. (dotnet/coreclr#9231)

Simplified MinOpts GC ref tracking - when a method is compiled with MinOpts for targets with the 64-bit GC info encoder we mark all GC slots as untracked and we omit encoding call sites with no live tracked GC refs explicitly in the GC tables; this can be controlled using the new COMPlus_JitMinOptsTrackGCrefs environment flag.

Commit migrated from https://github.com/dotnet/coreclr/commit/d7509df9635ca92c1a3cf75dc2516ae51b0e03d6
14 files changed:
src/coreclr/src/jit/codegenarm.cpp
src/coreclr/src/jit/codegenarm64.cpp
src/coreclr/src/jit/codegenlegacy.cpp
src/coreclr/src/jit/codegenxarch.cpp
src/coreclr/src/jit/gcencode.cpp
src/coreclr/src/jit/jitconfigvalues.h
src/coreclr/src/jit/jitgcinfo.h
src/coreclr/src/jit/lclvars.cpp
src/coreclr/src/vm/gcinfodecoder.cpp
src/coreclr/tests/src/GC/API/GC/KeepAlive.cs
src/coreclr/tests/src/GC/Scenarios/LeakGen/leakgen.cs
src/coreclr/tests/src/GC/Scenarios/Samples/gc.cs
src/coreclr/tests/src/GC/Scenarios/WeakReference/weakreffinal.cs
src/coreclr/tests/src/JIT/Methodical/Arrays/misc/arrres.cs