Mercurial > hg > graal-compiler
comparison src/share/vm/runtime/globals.hpp @ 18041:52b4284cb496
Merge with jdk8u20-b26
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Wed, 15 Oct 2014 16:02:50 +0200 |
parents | dffc37fa7157 2b8a9740813e |
children | eaf39a954227 |
comparison
equal
deleted
inserted
replaced
17606:45d7b2c7029d | 18041:52b4284cb496 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 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 | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
59 # include "globals_solaris.hpp" | 59 # include "globals_solaris.hpp" |
60 #endif | 60 #endif |
61 #ifdef TARGET_OS_FAMILY_windows | 61 #ifdef TARGET_OS_FAMILY_windows |
62 # include "globals_windows.hpp" | 62 # include "globals_windows.hpp" |
63 #endif | 63 #endif |
64 #ifdef TARGET_OS_FAMILY_aix | |
65 # include "globals_aix.hpp" | |
66 #endif | |
64 #ifdef TARGET_OS_FAMILY_bsd | 67 #ifdef TARGET_OS_FAMILY_bsd |
65 # include "globals_bsd.hpp" | 68 # include "globals_bsd.hpp" |
66 #endif | 69 #endif |
67 #ifdef TARGET_OS_ARCH_linux_x86 | 70 #ifdef TARGET_OS_ARCH_linux_x86 |
68 # include "globals_linux_x86.hpp" | 71 # include "globals_linux_x86.hpp" |
85 #ifdef TARGET_OS_ARCH_linux_arm | 88 #ifdef TARGET_OS_ARCH_linux_arm |
86 # include "globals_linux_arm.hpp" | 89 # include "globals_linux_arm.hpp" |
87 #endif | 90 #endif |
88 #ifdef TARGET_OS_ARCH_linux_ppc | 91 #ifdef TARGET_OS_ARCH_linux_ppc |
89 # include "globals_linux_ppc.hpp" | 92 # include "globals_linux_ppc.hpp" |
93 #endif | |
94 #ifdef TARGET_OS_ARCH_aix_ppc | |
95 # include "globals_aix_ppc.hpp" | |
90 #endif | 96 #endif |
91 #ifdef TARGET_OS_ARCH_bsd_x86 | 97 #ifdef TARGET_OS_ARCH_bsd_x86 |
92 # include "globals_bsd_x86.hpp" | 98 # include "globals_bsd_x86.hpp" |
93 #endif | 99 #endif |
94 #ifdef TARGET_OS_ARCH_bsd_zero | 100 #ifdef TARGET_OS_ARCH_bsd_zero |
113 #ifdef TARGET_OS_FAMILY_solaris | 119 #ifdef TARGET_OS_FAMILY_solaris |
114 # include "c1_globals_solaris.hpp" | 120 # include "c1_globals_solaris.hpp" |
115 #endif | 121 #endif |
116 #ifdef TARGET_OS_FAMILY_windows | 122 #ifdef TARGET_OS_FAMILY_windows |
117 # include "c1_globals_windows.hpp" | 123 # include "c1_globals_windows.hpp" |
124 #endif | |
125 #ifdef TARGET_OS_FAMILY_aix | |
126 # include "c1_globals_aix.hpp" | |
118 #endif | 127 #endif |
119 #ifdef TARGET_OS_FAMILY_bsd | 128 #ifdef TARGET_OS_FAMILY_bsd |
120 # include "c1_globals_bsd.hpp" | 129 # include "c1_globals_bsd.hpp" |
121 #endif | 130 #endif |
122 #endif | 131 #endif |
142 # include "c2_globals_sparc.hpp" | 151 # include "c2_globals_sparc.hpp" |
143 #endif | 152 #endif |
144 #ifdef TARGET_ARCH_arm | 153 #ifdef TARGET_ARCH_arm |
145 # include "c2_globals_arm.hpp" | 154 # include "c2_globals_arm.hpp" |
146 #endif | 155 #endif |
156 #ifdef TARGET_ARCH_ppc | |
157 # include "c2_globals_ppc.hpp" | |
158 #endif | |
147 #ifdef TARGET_OS_FAMILY_linux | 159 #ifdef TARGET_OS_FAMILY_linux |
148 # include "c2_globals_linux.hpp" | 160 # include "c2_globals_linux.hpp" |
149 #endif | 161 #endif |
150 #ifdef TARGET_OS_FAMILY_solaris | 162 #ifdef TARGET_OS_FAMILY_solaris |
151 # include "c2_globals_solaris.hpp" | 163 # include "c2_globals_solaris.hpp" |
152 #endif | 164 #endif |
153 #ifdef TARGET_OS_FAMILY_windows | 165 #ifdef TARGET_OS_FAMILY_windows |
154 # include "c2_globals_windows.hpp" | 166 # include "c2_globals_windows.hpp" |
167 #endif | |
168 #ifdef TARGET_OS_FAMILY_aix | |
169 # include "c2_globals_aix.hpp" | |
155 #endif | 170 #endif |
156 #ifdef TARGET_OS_FAMILY_bsd | 171 #ifdef TARGET_OS_FAMILY_bsd |
157 # include "c2_globals_bsd.hpp" | 172 # include "c2_globals_bsd.hpp" |
158 #endif | 173 #endif |
159 #endif | 174 #endif |
179 define_pd_global(intx, BackEdgeThreshold, 0); | 194 define_pd_global(intx, BackEdgeThreshold, 0); |
180 | 195 |
181 define_pd_global(intx, OnStackReplacePercentage, 0); | 196 define_pd_global(intx, OnStackReplacePercentage, 0); |
182 define_pd_global(bool, ResizeTLAB, false); | 197 define_pd_global(bool, ResizeTLAB, false); |
183 define_pd_global(intx, FreqInlineSize, 0); | 198 define_pd_global(intx, FreqInlineSize, 0); |
184 define_pd_global(intx, InlineSmallCode, 0); | |
185 define_pd_global(intx, NewSizeThreadIncrease, 4*K); | 199 define_pd_global(intx, NewSizeThreadIncrease, 4*K); |
186 define_pd_global(intx, InlineClassNatives, true); | 200 define_pd_global(intx, InlineClassNatives, true); |
187 define_pd_global(intx, InlineUnsafeOps, true); | 201 define_pd_global(intx, InlineUnsafeOps, true); |
188 define_pd_global(intx, InitialCodeCacheSize, 160*K); | 202 define_pd_global(intx, InitialCodeCacheSize, 160*K); |
189 define_pd_global(intx, ReservedCodeCacheSize, 32*M); | 203 define_pd_global(intx, ReservedCodeCacheSize, 32*M); |
254 static Flag* flags; | 268 static Flag* flags; |
255 | 269 |
256 // number of flags | 270 // number of flags |
257 static size_t numFlags; | 271 static size_t numFlags; |
258 | 272 |
259 static Flag* find_flag(const char* name, size_t length, bool allow_locked = false, bool allow_constant = false); | 273 static Flag* find_flag(const char* name, size_t length, bool allow_locked = false, bool return_flag = false); |
260 static Flag* fuzzy_match(const char* name, size_t length, bool allow_locked = false); | 274 static Flag* fuzzy_match(const char* name, size_t length, bool allow_locked = false); |
261 | 275 |
262 void check_writable(); | 276 void check_writable(); |
263 | 277 |
264 bool is_bool() const; | 278 bool is_bool() const; |
522 * removal testing. It was supposed to be removed before FCS but has \ | 536 * removal testing. It was supposed to be removed before FCS but has \ |
523 * been re-added (see 6401008) */ \ | 537 * been re-added (see 6401008) */ \ |
524 product_pd(bool, UseMembar, \ | 538 product_pd(bool, UseMembar, \ |
525 "(Unstable) Issues membars on thread state transitions") \ | 539 "(Unstable) Issues membars on thread state transitions") \ |
526 \ | 540 \ |
527 /* Temp PPC Flag to allow disabling the use of lwsync on ppc platforms \ | |
528 * that don't support it. This will be replaced by processor detection \ | |
529 * logic. \ | |
530 */ \ | |
531 product(bool, UsePPCLWSYNC, true, \ | |
532 "Use lwsync instruction if true, else use slower sync") \ | |
533 \ | |
534 develop(bool, CleanChunkPoolAsync, falseInEmbedded, \ | 541 develop(bool, CleanChunkPoolAsync, falseInEmbedded, \ |
535 "Clean the chunk pool asynchronously") \ | 542 "Clean the chunk pool asynchronously") \ |
536 \ | 543 \ |
537 /* Temporary: See 6948537 */ \ | 544 /* Temporary: See 6948537 */ \ |
538 experimental(bool, UseMemSetInBOT, true, \ | 545 experimental(bool, UseMemSetInBOT, true, \ |
1276 notproduct(bool, TraceRuntimeCalls, false, \ | 1283 notproduct(bool, TraceRuntimeCalls, false, \ |
1277 "Trace run-time calls") \ | 1284 "Trace run-time calls") \ |
1278 \ | 1285 \ |
1279 develop(bool, TraceJNICalls, false, \ | 1286 develop(bool, TraceJNICalls, false, \ |
1280 "Trace JNI calls") \ | 1287 "Trace JNI calls") \ |
1288 \ | |
1289 develop(bool, StressRewriter, false, \ | |
1290 "Stress linktime bytecode rewriting") \ | |
1281 \ | 1291 \ |
1282 notproduct(bool, TraceJVMCalls, false, \ | 1292 notproduct(bool, TraceJVMCalls, false, \ |
1283 "Trace JVM calls") \ | 1293 "Trace JVM calls") \ |
1284 \ | 1294 \ |
1285 product(ccstr, TraceJVMTI, NULL, \ | 1295 product(ccstr, TraceJVMTI, NULL, \ |
2424 \ | 2434 \ |
2425 product(uintx, NumberOfGCLogFiles, 0, \ | 2435 product(uintx, NumberOfGCLogFiles, 0, \ |
2426 "Number of gclog files in rotation " \ | 2436 "Number of gclog files in rotation " \ |
2427 "(default: 0, no rotation)") \ | 2437 "(default: 0, no rotation)") \ |
2428 \ | 2438 \ |
2429 product(uintx, GCLogFileSize, 0, \ | 2439 product(uintx, GCLogFileSize, 8*K, \ |
2430 "GC log file size (default: 0 bytes, no rotation). " \ | 2440 "GC log file size, requires UseGCLogFileRotation. " \ |
2431 "It requires UseGCLogFileRotation") \ | 2441 "Set to 0 to only trigger rotation via jcmd") \ |
2432 \ | 2442 \ |
2433 /* JVMTI heap profiling */ \ | 2443 /* JVMTI heap profiling */ \ |
2434 \ | 2444 \ |
2435 diagnostic(bool, TraceJVMTIObjectTagging, false, \ | 2445 diagnostic(bool, TraceJVMTIObjectTagging, false, \ |
2436 "Trace JVMTI object tagging calls") \ | 2446 "Trace JVMTI object tagging calls") \ |
2505 "Generate range checks for array accesses") \ | 2515 "Generate range checks for array accesses") \ |
2506 \ | 2516 \ |
2507 develop_pd(bool, ImplicitNullChecks, \ | 2517 develop_pd(bool, ImplicitNullChecks, \ |
2508 "Generate code for implicit null checks") \ | 2518 "Generate code for implicit null checks") \ |
2509 \ | 2519 \ |
2520 product_pd(bool, TrapBasedNullChecks, \ | |
2521 "Generate code for null checks that uses a cmp and trap " \ | |
2522 "instruction raising SIGTRAP. This is only used if an access to" \ | |
2523 "null (+offset) will not raise a SIGSEGV, i.e.," \ | |
2524 "ImplicitNullChecks don't work (PPC64).") \ | |
2525 \ | |
2510 product(bool, PrintSafepointStatistics, false, \ | 2526 product(bool, PrintSafepointStatistics, false, \ |
2511 "Print statistics about safepoint synchronization") \ | 2527 "Print statistics about safepoint synchronization") \ |
2512 \ | 2528 \ |
2513 product(intx, PrintSafepointStatisticsCount, 300, \ | 2529 product(intx, PrintSafepointStatisticsCount, 300, \ |
2514 "Total number of safepoint statistics collected " \ | 2530 "Total number of safepoint statistics collected " \ |
2549 develop(bool, TraceMethodReplacement, false, \ | 2565 develop(bool, TraceMethodReplacement, false, \ |
2550 "Print when methods are replaced do to recompilation") \ | 2566 "Print when methods are replaced do to recompilation") \ |
2551 \ | 2567 \ |
2552 develop(bool, PrintMethodFlushing, false, \ | 2568 develop(bool, PrintMethodFlushing, false, \ |
2553 "Print the nmethods being flushed") \ | 2569 "Print the nmethods being flushed") \ |
2570 \ | |
2571 diagnostic(bool, PrintMethodFlushingStatistics, false, \ | |
2572 "print statistics about method flushing") \ | |
2554 \ | 2573 \ |
2555 develop(bool, UseRelocIndex, false, \ | 2574 develop(bool, UseRelocIndex, false, \ |
2556 "Use an index to speed random access to relocations") \ | 2575 "Use an index to speed random access to relocations") \ |
2557 \ | 2576 \ |
2558 develop(bool, StressCodeBuffers, false, \ | 2577 develop(bool, StressCodeBuffers, false, \ |
2812 "Inline intrinsics that can be statically resolved") \ | 2831 "Inline intrinsics that can be statically resolved") \ |
2813 \ | 2832 \ |
2814 product_pd(bool, ProfileInterpreter, \ | 2833 product_pd(bool, ProfileInterpreter, \ |
2815 "Profile at the bytecode level during interpretation") \ | 2834 "Profile at the bytecode level during interpretation") \ |
2816 \ | 2835 \ |
2836 develop(bool, TraceProfileInterpreter, false, \ | |
2837 "Trace profiling at the bytecode level during interpretation. " \ | |
2838 "This outputs the profiling information collected to improve " \ | |
2839 "jit compilation.") \ | |
2840 \ | |
2817 develop_pd(bool, ProfileTraps, \ | 2841 develop_pd(bool, ProfileTraps, \ |
2818 "Profile deoptimization traps at the bytecode level") \ | 2842 "Profile deoptimization traps at the bytecode level") \ |
2819 \ | 2843 \ |
2820 product(intx, ProfileMaturityPercentage, 20, \ | 2844 product(intx, ProfileMaturityPercentage, 20, \ |
2821 "number of method invocations/branches (expressed as % of " \ | 2845 "number of method invocations/branches (expressed as % of " \ |
2977 \ | 3001 \ |
2978 product(intx, MaxRecursiveInlineLevel, 1, \ | 3002 product(intx, MaxRecursiveInlineLevel, 1, \ |
2979 "maximum number of nested recursive calls that are inlined") \ | 3003 "maximum number of nested recursive calls that are inlined") \ |
2980 \ | 3004 \ |
2981 develop(intx, MaxForceInlineLevel, 100, \ | 3005 develop(intx, MaxForceInlineLevel, 100, \ |
2982 "maximum number of nested @ForceInline calls that are inlined") \ | 3006 "maximum number of nested calls that are forced for inlining " \ |
3007 "(using CompilerOracle or marked w/ @ForceInline)") \ | |
2983 \ | 3008 \ |
2984 product_pd(intx, InlineSmallCode, \ | 3009 product_pd(intx, InlineSmallCode, \ |
2985 "Only inline already compiled methods if their code size is " \ | 3010 "Only inline already compiled methods if their code size is " \ |
2986 "less than this") \ | 3011 "less than this") \ |
2987 \ | 3012 \ |
3074 "Per-BCI limit on repeated recompilation (-1=>'Inf')") \ | 3099 "Per-BCI limit on repeated recompilation (-1=>'Inf')") \ |
3075 \ | 3100 \ |
3076 product(intx, PerMethodTrapLimit, 100, \ | 3101 product(intx, PerMethodTrapLimit, 100, \ |
3077 "Limit on traps (of one kind) in a method (includes inlines)") \ | 3102 "Limit on traps (of one kind) in a method (includes inlines)") \ |
3078 \ | 3103 \ |
3104 experimental(intx, PerMethodSpecTrapLimit, 5000, \ | |
3105 "Limit on speculative traps (of one kind) in a method (includes inlines)") \ | |
3106 \ | |
3079 product(intx, PerBytecodeTrapLimit, 4, \ | 3107 product(intx, PerBytecodeTrapLimit, 4, \ |
3080 "Limit on traps (of one kind) at a particular BCI") \ | 3108 "Limit on traps (of one kind) at a particular BCI") \ |
3109 \ | |
3110 experimental(intx, SpecTrapLimitExtraEntries, 3, \ | |
3111 "Extra method data trap entries for speculation") \ | |
3081 \ | 3112 \ |
3082 develop(intx, InlineFrequencyRatio, 20, \ | 3113 develop(intx, InlineFrequencyRatio, 20, \ |
3083 "Ratio of call site execution to caller method invocation") \ | 3114 "Ratio of call site execution to caller method invocation") \ |
3084 \ | 3115 \ |
3085 develop_pd(intx, InlineFrequencyCount, \ | 3116 develop_pd(intx, InlineFrequencyCount, \ |
3155 \ | 3186 \ |
3156 product(uintx, CompressedClassSpaceSize, 1*G, \ | 3187 product(uintx, CompressedClassSpaceSize, 1*G, \ |
3157 "Maximum size of class area in Metaspace when compressed " \ | 3188 "Maximum size of class area in Metaspace when compressed " \ |
3158 "class pointers are used") \ | 3189 "class pointers are used") \ |
3159 \ | 3190 \ |
3160 product(uintx, MinHeapFreeRatio, 40, \ | 3191 manageable(uintx, MinHeapFreeRatio, 40, \ |
3161 "The minimum percentage of heap free after GC to avoid expansion."\ | 3192 "The minimum percentage of heap free after GC to avoid expansion."\ |
3162 " For most GCs this applies to the old generation. In G1 it" \ | 3193 " For most GCs this applies to the old generation. In G1 and" \ |
3163 " applies to the whole heap. Not supported by ParallelGC.") \ | 3194 " ParallelGC it applies to the whole heap.") \ |
3164 \ | 3195 \ |
3165 product(uintx, MaxHeapFreeRatio, 70, \ | 3196 manageable(uintx, MaxHeapFreeRatio, 70, \ |
3166 "The maximum percentage of heap free after GC to avoid shrinking."\ | 3197 "The maximum percentage of heap free after GC to avoid shrinking."\ |
3167 " For most GCs this applies to the old generation. In G1 it" \ | 3198 " For most GCs this applies to the old generation. In G1 and" \ |
3168 " applies to the whole heap. Not supported by ParallelGC.") \ | 3199 " ParallelGC it applies to the whole heap.") \ |
3169 \ | 3200 \ |
3170 product(intx, SoftRefLRUPolicyMSPerMB, 1000, \ | 3201 product(intx, SoftRefLRUPolicyMSPerMB, 1000, \ |
3171 "Number of milliseconds per MB of free space in the heap") \ | 3202 "Number of milliseconds per MB of free space in the heap") \ |
3172 \ | 3203 \ |
3173 product(uintx, MinHeapDeltaBytes, ScaleForWordSize(128*K), \ | 3204 product(uintx, MinHeapDeltaBytes, ScaleForWordSize(128*K), \ |
3282 "Thread safety margin is used on fixed-stack LinuxThreads (on " \ | 3313 "Thread safety margin is used on fixed-stack LinuxThreads (on " \ |
3283 "Linux/x86 only) to prevent heap-stack collision. Set to 0 to " \ | 3314 "Linux/x86 only) to prevent heap-stack collision. Set to 0 to " \ |
3284 "disable this feature") \ | 3315 "disable this feature") \ |
3285 \ | 3316 \ |
3286 /* code cache parameters */ \ | 3317 /* code cache parameters */ \ |
3287 develop(uintx, CodeCacheSegmentSize, 64, \ | 3318 /* ppc64 has large code-entry alignment. */ \ |
3319 develop(uintx, CodeCacheSegmentSize, 64 PPC64_ONLY(+64), \ | |
3288 "Code cache segment size (in bytes) - smallest unit of " \ | 3320 "Code cache segment size (in bytes) - smallest unit of " \ |
3289 "allocation") \ | 3321 "allocation") \ |
3290 \ | 3322 \ |
3291 develop_pd(intx, CodeEntryAlignment, \ | 3323 develop_pd(intx, CodeEntryAlignment, \ |
3292 "Code entry alignment for generated code (in bytes)") \ | 3324 "Code entry alignment for generated code (in bytes)") \ |
3331 \ | 3363 \ |
3332 /* compiler interface */ \ | 3364 /* compiler interface */ \ |
3333 develop(intx, CIStart, 0, \ | 3365 develop(intx, CIStart, 0, \ |
3334 "The id of the first compilation to permit") \ | 3366 "The id of the first compilation to permit") \ |
3335 \ | 3367 \ |
3336 develop(intx, CIStop, -1, \ | 3368 develop(intx, CIStop, max_jint, \ |
3337 "The id of the last compilation to permit") \ | 3369 "The id of the last compilation to permit") \ |
3338 \ | 3370 \ |
3339 develop(intx, CIStartOSR, 0, \ | 3371 develop(intx, CIStartOSR, 0, \ |
3340 "The id of the first osr compilation to permit " \ | 3372 "The id of the first osr compilation to permit " \ |
3341 "(CICountOSR must be on)") \ | 3373 "(CICountOSR must be on)") \ |
3342 \ | 3374 \ |
3343 develop(intx, CIStopOSR, -1, \ | 3375 develop(intx, CIStopOSR, max_jint, \ |
3344 "The id of the last osr compilation to permit " \ | 3376 "The id of the last osr compilation to permit " \ |
3345 "(CICountOSR must be on)") \ | 3377 "(CICountOSR must be on)") \ |
3346 \ | 3378 \ |
3347 develop(intx, CIBreakAtOSR, -1, \ | 3379 develop(intx, CIBreakAtOSR, -1, \ |
3348 "The id of osr compilation to break at") \ | 3380 "The id of osr compilation to break at") \ |
3349 \ | 3381 \ |
3350 develop(intx, CIBreakAt, -1, \ | 3382 develop(intx, CIBreakAt, -1, \ |
3351 "The id of compilation to break at") \ | 3383 "The id of compilation to break at") \ |
3352 \ | 3384 \ |
3353 product(ccstrlist, CompileOnly, "", \ | 3385 product(ccstrlist, CompileOnly, "", \ |
3354 "List of methods (pkg/class.name) to restrict compilation to") \ | 3386 "List of methods (pkg/class.name) to restrict compilation to") \ |
3355 \ | 3387 \ |
3363 "Enable replay of compilations from ReplayDataFile") \ | 3395 "Enable replay of compilations from ReplayDataFile") \ |
3364 \ | 3396 \ |
3365 product(ccstr, ReplayDataFile, NULL, \ | 3397 product(ccstr, ReplayDataFile, NULL, \ |
3366 "File containing compilation replay information" \ | 3398 "File containing compilation replay information" \ |
3367 "[default: ./replay_pid%p.log] (%p replaced with pid)") \ | 3399 "[default: ./replay_pid%p.log] (%p replaced with pid)") \ |
3400 \ | |
3401 product(ccstr, InlineDataFile, NULL, \ | |
3402 "File containing inlining replay information" \ | |
3403 "[default: ./inline_pid%p.log] (%p replaced with pid)") \ | |
3368 \ | 3404 \ |
3369 develop(intx, ReplaySuppressInitializers, 2, \ | 3405 develop(intx, ReplaySuppressInitializers, 2, \ |
3370 "Control handling of class initialization during replay: " \ | 3406 "Control handling of class initialization during replay: " \ |
3371 "0 - don't do anything special; " \ | 3407 "0 - don't do anything special; " \ |
3372 "1 - treat all class initializers as empty; " \ | 3408 "1 - treat all class initializers as empty; " \ |
3780 "show method handle implementation frames (usually hidden)") \ | 3816 "show method handle implementation frames (usually hidden)") \ |
3781 \ | 3817 \ |
3782 experimental(bool, TrustFinalNonStaticFields, false, \ | 3818 experimental(bool, TrustFinalNonStaticFields, false, \ |
3783 "trust final non-static declarations for constant folding") \ | 3819 "trust final non-static declarations for constant folding") \ |
3784 \ | 3820 \ |
3785 experimental(bool, FoldStableValues, false, \ | 3821 diagnostic(bool, FoldStableValues, true, \ |
3786 "Private flag to control optimizations for stable variables") \ | 3822 "Optimize loads from stable fields (marked w/ @Stable)") \ |
3787 \ | 3823 \ |
3788 develop(bool, TraceInvokeDynamic, false, \ | 3824 develop(bool, TraceInvokeDynamic, false, \ |
3789 "trace internal invoke dynamic operations") \ | 3825 "trace internal invoke dynamic operations") \ |
3790 \ | 3826 \ |
3791 diagnostic(bool, PauseAtStartup, false, \ | 3827 diagnostic(bool, PauseAtStartup, false, \ |
3820 product(uintx, StringTableSize, defaultStringTableSize, \ | 3856 product(uintx, StringTableSize, defaultStringTableSize, \ |
3821 "Number of buckets in the interned String table") \ | 3857 "Number of buckets in the interned String table") \ |
3822 \ | 3858 \ |
3823 experimental(uintx, SymbolTableSize, defaultSymbolTableSize, \ | 3859 experimental(uintx, SymbolTableSize, defaultSymbolTableSize, \ |
3824 "Number of buckets in the JVM internal Symbol table") \ | 3860 "Number of buckets in the JVM internal Symbol table") \ |
3861 \ | |
3862 product(bool, UseStringDeduplication, false, \ | |
3863 "Use string deduplication") \ | |
3864 \ | |
3865 product(bool, PrintStringDeduplicationStatistics, false, \ | |
3866 "Print string deduplication statistics") \ | |
3867 \ | |
3868 product(uintx, StringDeduplicationAgeThreshold, 3, \ | |
3869 "A string must reach this age (or be promoted to an old region) " \ | |
3870 "to be considered for deduplication") \ | |
3871 \ | |
3872 diagnostic(bool, StringDeduplicationResizeALot, false, \ | |
3873 "Force table resize every time the table is scanned") \ | |
3874 \ | |
3875 diagnostic(bool, StringDeduplicationRehashALot, false, \ | |
3876 "Force table rehash every time the table is scanned") \ | |
3825 \ | 3877 \ |
3826 develop(bool, TraceDefaultMethods, false, \ | 3878 develop(bool, TraceDefaultMethods, false, \ |
3827 "Trace the default method processing steps") \ | 3879 "Trace the default method processing steps") \ |
3828 \ | 3880 \ |
3829 develop(bool, VerifyGenericSignatures, false, \ | 3881 develop(bool, VerifyGenericSignatures, false, \ |