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
|