Skip to content

Commit

Permalink
Define OpenJ9-specific HandleRecompilationOps optimization
Browse files Browse the repository at this point in the history
Define the OpenJ9-specific optimization, HandleRecompilationOps, along
with options for tracing its actions and disabling it.

Signed-off-by:  Henry Zongaro <zongaro@ca.ibm.com>
  • Loading branch information
hzongaro committed Oct 26, 2020
1 parent e2fac34 commit 3af3a37
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 2 deletions.
8 changes: 6 additions & 2 deletions compiler/control/OMROptions.cpp
Expand Up @@ -337,6 +337,9 @@ TR::OptionTable OMR::Options::_jitOptions[] = {
{"disableGuardedCountingRecompilations","O\tdeprecated. Same as disableGuardedCountingRecompilation", SET_OPTION_BIT(TR_DisableGuardedCountingRecompilations), "F"},
{"disableGuardedStaticFinalFieldFolding", "O\tdisable static final field folding guarded by OSR guards", SET_OPTION_BIT(TR_DisableGuardedStaticFinalFieldFolding), "F", NOT_IN_SUBSET },
{"disableHalfSlotSpills", "O\tdisable sharing of a single 8-byte spill temp for two 4-byte values", SET_OPTION_BIT(TR_DisableHalfSlotSpills), "P"},
#ifdef J9_PROJECT_SPECIFIC
{"disableHandleRecompilationOps", "O\tdisable handling operations that require recompilation", TR::Options::disableOptimization, handleRecompilationOps, 0, "P"},
#endif
{"disableHardwareProfilerDataCollection", "O\tdisable the collection of hardware profiler information while maintaining the framework", SET_OPTION_BIT(TR_DisableHWProfilerDataCollection), "F", NOT_IN_SUBSET},
{"disableHardwareProfilerDuringStartup", "O\tdisable hardware profiler during startup", SET_OPTION_BIT(TR_DisableHardwareProfilerDuringStartup), "F", NOT_IN_SUBSET},
{"disableHardwareProfileRecompilation","O\tdisable hardware profile recompilation", RESET_OPTION_BIT(TR_EnableHardwareProfileRecompilation), "F", NOT_IN_SUBSET},
Expand Down Expand Up @@ -1126,9 +1129,10 @@ TR::OptionTable OMR::Options::_jitOptions[] = {
{"traceGlobalLiveVariablesForGC", "L\ttrace global live variables for GC", TR::Options::traceOptimization, globalLiveVariablesForGC, 0, "P"},
{"traceGlobalVP", "L\ttrace global value propagation", TR::Options::traceOptimization, globalValuePropagation, 0, "P"},
{"traceGLU", "L\ttrace general loop unroller", TR::Options::traceOptimization, generalLoopUnroller, 0, "P"},
{"traceGRA", "L\ttrace tree based global register allocator", TR::Options::traceOptimization, tacticalGlobalRegisterAllocator, 0, "P"},
{"traceGRA", "L\ttrace tree based global register allocator", TR::Options::traceOptimization, tacticalGlobalRegisterAllocator, 0, "P"},
#ifdef J9_PROJECT_SPECIFIC
{"traceIdiomRecognition", "L\ttrace idiom recognition", TR::Options::traceOptimization, idiomRecognition, 0, "P"},
{"traceHandleRecompilationOps", "L\ttrace handle recompilation operations", TR::Options::traceOptimization, handleRecompilationOps, 0, "P"},
{"traceIdiomRecognition", "L\ttrace idiom recognition", TR::Options::traceOptimization, idiomRecognition, 0, "P"},
#endif
{"traceILGen", "L\ttrace IL generator", SET_OPTION_BIT(TR_TraceILGen), "F"},
{"traceILValidator", "L\ttrace validation over intermediate language constructs",SET_OPTION_BIT(TR_TraceILValidator), "F" },
Expand Down
1 change: 1 addition & 0 deletions compiler/optimizer/OMROptimizer.cpp
Expand Up @@ -545,6 +545,7 @@ static const OptimizationStrategy ilgenStrategyOpts[] =
{ osrLiveRangeAnalysis, IfOSR },
{ osrDefAnalysis, IfInvoluntaryOSR },
{ varHandleTransformer, MustBeDone },
{ handleRecompilationOps, MustBeDone },
{ unsafeFastPath },
{ recognizedCallTransformer },
{ coldBlockMarker },
Expand Down

0 comments on commit 3af3a37

Please sign in to comment.