summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/jit/jitconfigvalues.h1
-rw-r--r--src/jit/morph.cpp6
2 files changed, 7 insertions, 0 deletions
diff --git a/src/jit/jitconfigvalues.h b/src/jit/jitconfigvalues.h
index b5732ed74a..07f0ab15ce 100644
--- a/src/jit/jitconfigvalues.h
+++ b/src/jit/jitconfigvalues.h
@@ -347,6 +347,7 @@ CONFIG_STRING(JitInlineReplayFile, W("JitInlineReplayFile"))
#endif // defined(DEBUG) || defined(INLINE_DATA)
CONFIG_INTEGER(JitInlinePolicyModel, W("JitInlinePolicyModel"), 0)
+CONFIG_INTEGER(JitObjectStackAllocation, W("JitObjectStackAllocation"), 0)
CONFIG_INTEGER(JitEECallTimingInfo, W("JitEECallTimingInfo"), 0)
diff --git a/src/jit/morph.cpp b/src/jit/morph.cpp
index 0e345a0847..bb04cdb302 100644
--- a/src/jit/morph.cpp
+++ b/src/jit/morph.cpp
@@ -16737,6 +16737,12 @@ void Compiler::fgMorph()
// Transform each GT_ALLOCOBJ node into either an allocation helper call or
// local variable allocation on the stack.
ObjectAllocator objectAllocator(this); // PHASE_ALLOCATE_OBJECTS
+
+ if (JitConfig.JitObjectStackAllocation() && !opts.MinOpts() && !opts.compDbgCode)
+ {
+ objectAllocator.EnableObjectStackAllocation();
+ }
+
objectAllocator.Run();
/* Add any internal blocks/trees we may need */