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, \