Enable object stack allocation in R2R mode.
authorEugene Rozenfeld <erozen@microsoft.com>
Sat, 24 Nov 2018 06:37:03 +0000 (22:37 -0800)
committerEugene Rozenfeld <erozen@microsoft.com>
Sun, 16 Dec 2018 19:43:48 +0000 (11:43 -0800)
commita4c765f9e8acaea5262f11056f3a3fe6a1eb6c29
tree82750fff3d4cde0a60861356e927ab5b9ae6f441
parenta16ec19800e68df06dbd4d0907fbaab6f334bdee
Enable object stack allocation in R2R mode.

This change modified the importer to create GenTreeAllocObj node for
box and newobj instead of a helper call in R2R mode. ObjectAllocator phase
decides whether the object can be allocated on the stack or has to be created
on the heap via a helper call.

To trigger object stack allocation COMPlus_JitObjectStackAllocation has
to be set (it's not set by default).

Commit migrated from https://github.com/dotnet/coreclr/commit/3e06d9f5911ffe30894b3e08ef955f645df3acd9
src/coreclr/src/jit/compiler.h
src/coreclr/src/jit/compiler.hpp
src/coreclr/src/jit/gentree.cpp
src/coreclr/src/jit/gentree.h
src/coreclr/src/jit/importer.cpp
src/coreclr/src/jit/objectalloc.cpp
src/coreclr/tests/src/JIT/opt/ObjectStackAllocation/ObjectStackAllocationTests.csproj