< prev index next >

src/hotspot/share/compiler/compiler_globals.hpp

Print this page

  1 /*
  2  * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved.
  3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  4  *
  5  * This code is free software; you can redistribute it and/or modify it
  6  * under the terms of the GNU General Public License version 2 only, as
  7  * published by the Free Software Foundation.
  8  *
  9  * This code is distributed in the hope that it will be useful, but WITHOUT
 10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 12  * version 2 for more details (a copy is included in the LICENSE file that
 13  * accompanied this code).
 14  *
 15  * You should have received a copy of the GNU General Public License version
 16  * 2 along with this work; if not, write to the Free Software Foundation,
 17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 18  *
 19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 20  * or visit www.oracle.com if you need additional information or have any
 21  * questions.
 22  *

252           range(0, 4)                                                       \
253                                                                             \
254   product(intx, Tier0ProfilingStartPercentage, 200,                         \
255           "Start profiling in interpreter if the counters exceed the "      \
256           "specified percentage of tier 3 thresholds")                      \
257           range(0, max_jint)                                                \
258                                                                             \
259   product(uintx, IncreaseFirstTierCompileThresholdAt, 50,                   \
260           "Increase the compile threshold for C1 compilation if the code "  \
261           "cache is filled by the specified percentage")                    \
262           range(0, 99)                                                      \
263                                                                             \
264   product(intx, TieredRateUpdateMinTime, 1,                                 \
265           "Minimum rate sampling interval (in milliseconds)")               \
266           range(0, max_intx)                                                \
267                                                                             \
268   product(intx, TieredRateUpdateMaxTime, 25,                                \
269           "Maximum rate sampling interval (in milliseconds)")               \
270           range(0, max_intx)                                                \
271                                                                             \











272   product(ccstr, CompilationMode, "default",                                \
273           "Compilation modes: "                                             \
274           "default: normal tiered compilation; "                            \
275           "quick-only: C1-only mode; "                                      \
276           "high-only: C2/JVMCI-only mode; "                                 \
277           "high-only-quick-internal: C2/JVMCI-only mode, "                  \
278           "with JVMCI compiler compiled with C1.")                          \
279                                                                             \
280   product(bool, PrintTieredEvents, false,                                   \
281           "Print tiered events notifications")                              \
282                                                                             \
283   product_pd(intx, OnStackReplacePercentage,                                \
284           "NON_TIERED number of method invocations/branches (expressed as " \
285           "% of CompileThreshold) before (re-)compiling OSR code")          \
286           constraint(OnStackReplacePercentageConstraintFunc, AfterErgo)     \
287                                                                             \
288   product(intx, InterpreterProfilePercentage, 33,                           \
289           "NON_TIERED number of method invocations/branches (expressed as " \
290           "% of CompileThreshold) before profiling in the interpreter")     \
291           range(0, 100)                                                     \

365   product(bool, AbortVMOnCompilationFailure, false, DIAGNOSTIC,             \
366           "Abort VM when method had failed to compile.")                    \
367                                                                             \
368   develop(intx, OSROnlyBCI, -1,                                             \
369           "OSR only at this bci.  Negative values mean exclude that bci")   \
370                                                                             \
371   develop(intx, DesiredMethodLimit,  8000,                                  \
372           "The desired maximum method size (in bytecodes) after inlining")  \
373                                                                             \
374   product(bool, DontCompileHugeMethods, true,                               \
375           "Do not compile methods > HugeMethodLimit")                       \
376                                                                             \
377   develop(intx, HugeMethodLimit,  8000,                                     \
378           "Don't compile methods larger than this if "                      \
379           "+DontCompileHugeMethods")                                        \
380                                                                             \
381   product(bool, CaptureBailoutInformation, trueInDebug, DIAGNOSTIC,         \
382           "If compilation is stopped with an error, capture diagnostic "    \
383           "information at the bailout point")                               \
384                                                                             \


































































385 
386 // end of COMPILER_FLAGS
387 
388 DECLARE_FLAGS(COMPILER_FLAGS)
389 
390 #endif // SHARE_COMPILER_COMPILER_GLOBALS_HPP

  1 /*
  2  * Copyright (c) 1997, 2025, Oracle and/or its affiliates. All rights reserved.
  3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  4  *
  5  * This code is free software; you can redistribute it and/or modify it
  6  * under the terms of the GNU General Public License version 2 only, as
  7  * published by the Free Software Foundation.
  8  *
  9  * This code is distributed in the hope that it will be useful, but WITHOUT
 10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 12  * version 2 for more details (a copy is included in the LICENSE file that
 13  * accompanied this code).
 14  *
 15  * You should have received a copy of the GNU General Public License version
 16  * 2 along with this work; if not, write to the Free Software Foundation,
 17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 18  *
 19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 20  * or visit www.oracle.com if you need additional information or have any
 21  * questions.
 22  *

252           range(0, 4)                                                       \
253                                                                             \
254   product(intx, Tier0ProfilingStartPercentage, 200,                         \
255           "Start profiling in interpreter if the counters exceed the "      \
256           "specified percentage of tier 3 thresholds")                      \
257           range(0, max_jint)                                                \
258                                                                             \
259   product(uintx, IncreaseFirstTierCompileThresholdAt, 50,                   \
260           "Increase the compile threshold for C1 compilation if the code "  \
261           "cache is filled by the specified percentage")                    \
262           range(0, 99)                                                      \
263                                                                             \
264   product(intx, TieredRateUpdateMinTime, 1,                                 \
265           "Minimum rate sampling interval (in milliseconds)")               \
266           range(0, max_intx)                                                \
267                                                                             \
268   product(intx, TieredRateUpdateMaxTime, 25,                                \
269           "Maximum rate sampling interval (in milliseconds)")               \
270           range(0, max_intx)                                                \
271                                                                             \
272   product(double, Tier0ProfileDelayFactor, 100.0, DIAGNOSTIC,               \
273           "Delay profiling/compiling of methods that were "                 \
274           "observed to be lukewarm")                                        \
275                                                                             \
276   product(double, Tier2ProfileDelayFactor, 250.0, DIAGNOSTIC,               \
277           "Delay profiling of methods that were observed to be lukewarm")   \
278                                                                             \
279   product(bool, SkipTier2IfPossible, false, DIAGNOSTIC,                     \
280           "Compile at tier 4 instead of tier 2 in training replay "         \
281           "mode if posssible")                                              \
282                                                                             \
283   product(ccstr, CompilationMode, "default",                                \
284           "Compilation modes: "                                             \
285           "default: normal tiered compilation; "                            \
286           "quick-only: C1-only mode; "                                      \
287           "high-only: C2/JVMCI-only mode; "                                 \
288           "high-only-quick-internal: C2/JVMCI-only mode, "                  \
289           "with JVMCI compiler compiled with C1.")                          \
290                                                                             \
291   product(bool, PrintTieredEvents, false,                                   \
292           "Print tiered events notifications")                              \
293                                                                             \
294   product_pd(intx, OnStackReplacePercentage,                                \
295           "NON_TIERED number of method invocations/branches (expressed as " \
296           "% of CompileThreshold) before (re-)compiling OSR code")          \
297           constraint(OnStackReplacePercentageConstraintFunc, AfterErgo)     \
298                                                                             \
299   product(intx, InterpreterProfilePercentage, 33,                           \
300           "NON_TIERED number of method invocations/branches (expressed as " \
301           "% of CompileThreshold) before profiling in the interpreter")     \
302           range(0, 100)                                                     \

376   product(bool, AbortVMOnCompilationFailure, false, DIAGNOSTIC,             \
377           "Abort VM when method had failed to compile.")                    \
378                                                                             \
379   develop(intx, OSROnlyBCI, -1,                                             \
380           "OSR only at this bci.  Negative values mean exclude that bci")   \
381                                                                             \
382   develop(intx, DesiredMethodLimit,  8000,                                  \
383           "The desired maximum method size (in bytecodes) after inlining")  \
384                                                                             \
385   product(bool, DontCompileHugeMethods, true,                               \
386           "Do not compile methods > HugeMethodLimit")                       \
387                                                                             \
388   develop(intx, HugeMethodLimit,  8000,                                     \
389           "Don't compile methods larger than this if "                      \
390           "+DontCompileHugeMethods")                                        \
391                                                                             \
392   product(bool, CaptureBailoutInformation, trueInDebug, DIAGNOSTIC,         \
393           "If compilation is stopped with an error, capture diagnostic "    \
394           "information at the bailout point")                               \
395                                                                             \
396   /* Code Caching flags */                                                  \
397                                                                             \
398   product(bool, UseC2asC3, false,                                           \
399           "Use C2 as 3rd compiler when other high-optimizing compiler "     \
400           "is used")                                                        \
401                                                                             \
402   product(bool, StoreCachedCode, false,                                     \
403           "Store cached compiled code")                                     \
404                                                                             \
405   product(bool, LoadCachedCode, false,                                      \
406           "Load cached compiled code")                                      \
407                                                                             \
408   product(uint, DisableCachedCode, 0,                                       \
409           "Disable cached code on some compilation levels "                 \
410           "(T1=1; T2=2; T4=4; T5/preload=8")                                \
411                                                                             \
412   product(uint, ClassInitBarrierMode, 0,                                    \
413           "Produce and use startup code which could be called "             \
414           "on first method invocation, add class initialization barriers, " \
415           "other checks and constrains if needed "                          \
416           "(0: no barriers; 1: uncommon trap; 2: full barrier)")            \
417                                                                             \
418   product(bool, StressClassInitBarriers, false, DIAGNOSTIC,                 \
419           "Force slow path in class initialization barriers")               \
420                                                                             \
421   product(bool, UseMetadataPointers, true,                                  \
422           "Store Metadata pointers in Relocation Info for cached code")     \
423                                                                             \
424   product(bool, UseCodeLoadThread, true,                                    \
425           "Use separate thread for cached code load")                       \
426                                                                             \
427   product(uint, SCLoadStart, 0,                                             \
428           "The id of the first cached code to load")                        \
429                                                                             \
430   product(uint, SCLoadStop, max_jint,                                       \
431           "The id of the last cached code to load")                         \
432                                                                             \
433   product(uint, CachedCodeMaxSize, 10*M,                                    \
434           "Buffer size in bytes for code caching")                          \
435                                                                             \
436   product(bool, VerifyCachedCode, false, DIAGNOSTIC,                        \
437           "Load compiled code but not publish")                             \
438                                                                             \
439   product(bool, UseGlobalCompileQueueLock, false,                           \
440           "Use a global lock for all compilation queues")                   \
441                                                                             \
442   product(bool, UseLockFreeCompileQueues, true,                             \
443           "Use lock free compile queues")                                   \
444                                                                             \
445   product(bool, PrecompileCode, false,                                      \
446           "Precompile code")                                                \
447                                                                             \
448   product(bool, PrecompileOnlyAndExit, false,                               \
449           "Exit after precompilation step is over")                         \
450                                                                             \
451   product(bool, PreloadReduceTraps, true, DIAGNOSTIC,                       \
452           "Preload code should avoid traps as much as possible.")           \
453                                                                             \
454   product(bool, PreloadBlocking, false, DIAGNOSTIC,                         \
455           "Preload code is processed with blocking. Startup would not "     \
456           "proceed until all code preloaded code is done loading.")         \
457                                                                             \
458   product(bool, PreloadOnly, false, EXPERIMENTAL,                           \
459           "Use preload code exclusively. This effectively disables most of "\
460           "profiling and JIT compilation, running close to AOT-only mode.") \
461                                                                             \
462 
463 // end of COMPILER_FLAGS
464 
465 DECLARE_FLAGS(COMPILER_FLAGS)
466 
467 #endif // SHARE_COMPILER_COMPILER_GLOBALS_HPP
< prev index next >