159 #endif
160 #ifdef TARGET_OS_FAMILY_solaris
161 # include "c2_globals_solaris.hpp"
162 #endif
163 #ifdef TARGET_OS_FAMILY_windows
164 # include "c2_globals_windows.hpp"
165 #endif
166 #ifdef TARGET_OS_FAMILY_aix
167 # include "c2_globals_aix.hpp"
168 #endif
169 #ifdef TARGET_OS_FAMILY_bsd
170 # include "c2_globals_bsd.hpp"
171 #endif
172 #endif
173 #ifdef SHARK
174 #ifdef TARGET_ARCH_zero
175 # include "shark_globals_zero.hpp"
176 #endif
177 #endif
178
179 #if !defined(COMPILER1) && !defined(COMPILER2) && !defined(SHARK)
180 define_pd_global(bool, BackgroundCompilation, false);
181 define_pd_global(bool, UseTLAB, false);
182 define_pd_global(bool, CICompileOSR, false);
183 define_pd_global(bool, UseTypeProfile, false);
184 define_pd_global(bool, UseOnStackReplacement, false);
185 define_pd_global(bool, InlineIntrinsics, false);
186 define_pd_global(bool, PreferInterpreterNativeStubs, true);
187 define_pd_global(bool, ProfileInterpreter, false);
188 define_pd_global(bool, ProfileTraps, false);
189 define_pd_global(bool, TieredCompilation, false);
190
191 define_pd_global(intx, CompileThreshold, 0);
192
193 define_pd_global(intx, OnStackReplacePercentage, 0);
194 define_pd_global(bool, ResizeTLAB, false);
195 define_pd_global(intx, FreqInlineSize, 0);
196 define_pd_global(size_t, NewSizeThreadIncrease, 4*K);
197 define_pd_global(intx, InlineClassNatives, true);
198 define_pd_global(intx, InlineUnsafeOps, true);
199 define_pd_global(intx, InitialCodeCacheSize, 160*K);
200 define_pd_global(intx, ReservedCodeCacheSize, 32*M);
201 define_pd_global(intx, NonProfiledCodeHeapSize, 0);
202 define_pd_global(intx, ProfiledCodeHeapSize, 0);
203 define_pd_global(intx, NonNMethodCodeHeapSize, 32*M);
204
205 define_pd_global(intx, CodeCacheExpansionSize, 32*K);
206 define_pd_global(intx, CodeCacheMinBlockLength, 1);
207 define_pd_global(intx, CodeCacheMinimumUseSpace, 200*K);
208 define_pd_global(size_t, MetaspaceSize, ScaleForWordSize(4*M));
209 define_pd_global(bool, NeverActAsServerClassMachine, true);
210 define_pd_global(uint64_t,MaxRAM, 1ULL*G);
211 #define CI_COMPILER_COUNT 0
212 #else
213
214 #ifdef COMPILER2
215 #define CI_COMPILER_COUNT 2
216 #else
217 #define CI_COMPILER_COUNT 1
218 #endif // COMPILER2
219
220 #endif // no compilers
221
222 // string type aliases used only in this file
223 typedef const char* ccstr;
224 typedef const char* ccstrlist; // represents string arguments which accumulate
225
226 struct Flag {
227 enum Flags {
228 // value origin
229 DEFAULT = 0,
230 COMMAND_LINE = 1,
231 ENVIRON_VAR = 2,
232 CONFIG_FILE = 3,
233 MANAGEMENT = 4,
234 ERGONOMIC = 5,
235 ATTACH_ON_DEMAND = 6,
236 INTERNAL = 7,
237
238 LAST_VALUE_ORIGIN = INTERNAL,
239 VALUE_ORIGIN_BITS = 4,
240 VALUE_ORIGIN_MASK = right_n_bits(VALUE_ORIGIN_BITS),
241
242 // flag kind
243 KIND_PRODUCT = 1 << 4,
244 KIND_MANAGEABLE = 1 << 5,
245 KIND_DIAGNOSTIC = 1 << 6,
246 KIND_EXPERIMENTAL = 1 << 7,
247 KIND_NOT_PRODUCT = 1 << 8,
248 KIND_DEVELOP = 1 << 9,
249 KIND_PLATFORM_DEPENDENT = 1 << 10,
250 KIND_READ_WRITE = 1 << 11,
251 KIND_C1 = 1 << 12,
252 KIND_C2 = 1 << 13,
253 KIND_ARCH = 1 << 14,
254 KIND_SHARK = 1 << 15,
255 KIND_LP64_PRODUCT = 1 << 16,
256 KIND_COMMERCIAL = 1 << 17,
257
258 KIND_MASK = ~VALUE_ORIGIN_MASK
259 };
260
261 enum Error {
262 // no error
263 SUCCESS = 0,
264 // flag name is missing
265 MISSING_NAME,
266 // flag value is missing
267 MISSING_VALUE,
268 // error parsing the textual form of the value
269 WRONG_FORMAT,
270 // flag is not writeable
271 NON_WRITABLE,
272 // flag value is outside of its bounds
273 OUT_OF_BOUNDS,
274 // flag value violates its constraint
275 VIOLATES_CONSTRAINT,
276 // there is no flag with the given name
1081 "Restore the FPU control word after every JNI call (expensive)") \
1082 \
1083 diagnostic(bool, PrintCompilation2, false, \
1084 "Print additional statistics per compilation") \
1085 \
1086 diagnostic(bool, PrintAdapterHandlers, false, \
1087 "Print code generated for i2c/c2i adapters") \
1088 \
1089 diagnostic(bool, VerifyAdapterCalls, trueInDebug, \
1090 "Verify that i2c/c2i adapters are called properly") \
1091 \
1092 develop(bool, VerifyAdapterSharing, false, \
1093 "Verify that the code for shared adapters is the equivalent") \
1094 \
1095 diagnostic(bool, PrintAssembly, false, \
1096 "Print assembly code (using external disassembler.so)") \
1097 \
1098 diagnostic(ccstr, PrintAssemblyOptions, NULL, \
1099 "Print options string passed to disassembler.so") \
1100 \
1101 diagnostic(bool, PrintNMethods, false, \
1102 "Print assembly code for nmethods when generated") \
1103 \
1104 diagnostic(bool, PrintNativeNMethods, false, \
1105 "Print assembly code for native nmethods when generated") \
1106 \
1107 develop(bool, PrintDebugInfo, false, \
1108 "Print debug information for all nmethods when generated") \
1109 \
1110 develop(bool, PrintRelocations, false, \
1111 "Print relocation information for all nmethods when generated") \
1112 \
1113 develop(bool, PrintDependencies, false, \
1114 "Print dependency information for all nmethods when generated") \
1115 \
1116 develop(bool, PrintExceptionHandlers, false, \
1117 "Print exception handler tables for all nmethods when generated") \
1118 \
1119 develop(bool, StressCompiledExceptionHandlers, false, \
1120 "Exercise compiled exception handlers") \
1121 \
1122 develop(bool, InterceptOSException, false, \
1123 "Start debugger when an implicit OS (e.g. NULL) " \
3046 product(intx, AllocatePrefetchDistance, -1, \
3047 "Distance to prefetch ahead of allocation pointer") \
3048 \
3049 product(intx, AllocatePrefetchLines, 3, \
3050 "Number of lines to prefetch ahead of array allocation pointer") \
3051 \
3052 product(intx, AllocateInstancePrefetchLines, 1, \
3053 "Number of lines to prefetch ahead of instance allocation " \
3054 "pointer") \
3055 \
3056 product(intx, AllocatePrefetchStepSize, 16, \
3057 "Step size in bytes of sequential prefetch instructions") \
3058 \
3059 product(intx, AllocatePrefetchInstr, 0, \
3060 "Prefetch instruction to prefetch ahead of allocation pointer") \
3061 \
3062 /* deoptimization */ \
3063 develop(bool, TraceDeoptimization, false, \
3064 "Trace deoptimization") \
3065 \
3066 develop(bool, DebugDeoptimization, false, \
3067 "Tracing various information while debugging deoptimization") \
3068 \
3069 product(intx, SelfDestructTimer, 0, \
3070 "Will cause VM to terminate after a given time (in minutes) " \
3071 "(0 means off)") \
3072 \
3073 product(intx, MaxJavaStackTraceDepth, 1024, \
3074 "The maximum number of lines in the stack trace for Java " \
3075 "exceptions (0 means all)") \
3076 \
3077 NOT_EMBEDDED(diagnostic(intx, GuaranteedSafepointInterval, 1000, \
3078 "Guarantee a safepoint (at least) every so many milliseconds " \
3079 "(0 means none)")) \
3080 \
3081 EMBEDDED_ONLY(product(intx, GuaranteedSafepointInterval, 0, \
3082 "Guarantee a safepoint (at least) every so many milliseconds " \
3083 "(0 means none)")) \
3084 \
3085 product(intx, SafepointTimeoutDelay, 10000, \
3195 "Number of exits until DeoptimizeALot kicks in") \
3196 \
3197 notproduct(intx, ZombieALotInterval, 5, \
3198 "Number of exits until ZombieALot kicks in") \
3199 \
3200 diagnostic(intx, MallocVerifyInterval, 0, \
3201 "If non-zero, verify C heap after every N calls to " \
3202 "malloc/realloc/free") \
3203 \
3204 diagnostic(intx, MallocVerifyStart, 0, \
3205 "If non-zero, start verifying C heap after Nth call to " \
3206 "malloc/realloc/free") \
3207 \
3208 diagnostic(uintx, MallocMaxTestWords, 0, \
3209 "If non-zero, maximum number of words that malloc/realloc can " \
3210 "allocate (for testing only)") \
3211 \
3212 product(intx, TypeProfileWidth, 2, \
3213 "Number of receiver types to record in call/cast profile") \
3214 \
3215 develop(intx, BciProfileWidth, 2, \
3216 "Number of return bci's to record in ret profile") \
3217 \
3218 product(intx, PerMethodRecompilationCutoff, 400, \
3219 "After recompiling N times, stay in the interpreter (-1=>'Inf')") \
3220 range(-1, max_intx) \
3221 \
3222 product(intx, PerBytecodeRecompilationCutoff, 200, \
3223 "Per-BCI limit on repeated recompilation (-1=>'Inf')") \
3224 range(-1, max_intx) \
3225 \
3226 product(intx, PerMethodTrapLimit, 100, \
3227 "Limit on traps (of one kind) in a method (includes inlines)") \
3228 \
3229 experimental(intx, PerMethodSpecTrapLimit, 5000, \
3230 "Limit on speculative traps (of one kind) in a method " \
3231 "(includes inlines)") \
3232 \
3233 product(intx, PerBytecodeTrapLimit, 4, \
3234 "Limit on traps (of one kind) at a particular BCI") \
3730 \
3731 product(intx, Tier3BackedgeNotifyFreqLog, 13, \
3732 "C1 with MDO profiling (tier 3) invocation notification " \
3733 "frequency") \
3734 \
3735 product(intx, Tier2CompileThreshold, 0, \
3736 "threshold at which tier 2 compilation is invoked") \
3737 \
3738 product(intx, Tier2BackEdgeThreshold, 0, \
3739 "Back edge threshold at which tier 2 compilation is invoked") \
3740 \
3741 product(intx, Tier3InvocationThreshold, 200, \
3742 "Compile if number of method invocations crosses this " \
3743 "threshold") \
3744 \
3745 product(intx, Tier3MinInvocationThreshold, 100, \
3746 "Minimum invocation to compile at tier 3") \
3747 \
3748 product(intx, Tier3CompileThreshold, 2000, \
3749 "Threshold at which tier 3 compilation is invoked (invocation " \
3750 "minimum must be satisfied") \
3751 \
3752 product(intx, Tier3BackEdgeThreshold, 60000, \
3753 "Back edge threshold at which tier 3 OSR compilation is invoked") \
3754 \
3755 product(intx, Tier4InvocationThreshold, 5000, \
3756 "Compile if number of method invocations crosses this " \
3757 "threshold") \
3758 \
3759 product(intx, Tier4MinInvocationThreshold, 600, \
3760 "Minimum invocation to compile at tier 4") \
3761 \
3762 product(intx, Tier4CompileThreshold, 15000, \
3763 "Threshold at which tier 4 compilation is invoked (invocation " \
3764 "minimum must be satisfied") \
3765 \
3766 product(intx, Tier4BackEdgeThreshold, 40000, \
3767 "Back edge threshold at which tier 4 OSR compilation is invoked") \
3768 \
3769 product(intx, Tier3DelayOn, 5, \
3770 "If C2 queue size grows over this amount per compiler thread " \
|
159 #endif
160 #ifdef TARGET_OS_FAMILY_solaris
161 # include "c2_globals_solaris.hpp"
162 #endif
163 #ifdef TARGET_OS_FAMILY_windows
164 # include "c2_globals_windows.hpp"
165 #endif
166 #ifdef TARGET_OS_FAMILY_aix
167 # include "c2_globals_aix.hpp"
168 #endif
169 #ifdef TARGET_OS_FAMILY_bsd
170 # include "c2_globals_bsd.hpp"
171 #endif
172 #endif
173 #ifdef SHARK
174 #ifdef TARGET_ARCH_zero
175 # include "shark_globals_zero.hpp"
176 #endif
177 #endif
178
179 #if !defined(COMPILER1) && !defined(COMPILER2) && !defined(SHARK) && !INCLUDE_JVMCI
180 define_pd_global(bool, BackgroundCompilation, false);
181 define_pd_global(bool, UseTLAB, false);
182 define_pd_global(bool, CICompileOSR, false);
183 define_pd_global(bool, UseTypeProfile, false);
184 define_pd_global(bool, UseOnStackReplacement, false);
185 define_pd_global(bool, InlineIntrinsics, false);
186 define_pd_global(bool, PreferInterpreterNativeStubs, true);
187 define_pd_global(bool, ProfileInterpreter, false);
188 define_pd_global(bool, ProfileTraps, false);
189 define_pd_global(bool, TieredCompilation, false);
190
191 define_pd_global(intx, CompileThreshold, 0);
192
193 define_pd_global(intx, OnStackReplacePercentage, 0);
194 define_pd_global(bool, ResizeTLAB, false);
195 define_pd_global(intx, FreqInlineSize, 0);
196 define_pd_global(size_t, NewSizeThreadIncrease, 4*K);
197 define_pd_global(intx, InlineClassNatives, true);
198 define_pd_global(intx, InlineUnsafeOps, true);
199 define_pd_global(intx, InitialCodeCacheSize, 160*K);
200 define_pd_global(intx, ReservedCodeCacheSize, 32*M);
201 define_pd_global(intx, NonProfiledCodeHeapSize, 0);
202 define_pd_global(intx, ProfiledCodeHeapSize, 0);
203 define_pd_global(intx, NonNMethodCodeHeapSize, 32*M);
204
205 define_pd_global(intx, CodeCacheExpansionSize, 32*K);
206 define_pd_global(intx, CodeCacheMinBlockLength, 1);
207 define_pd_global(intx, CodeCacheMinimumUseSpace, 200*K);
208 define_pd_global(size_t, MetaspaceSize, ScaleForWordSize(4*M));
209 define_pd_global(bool, NeverActAsServerClassMachine, true);
210 define_pd_global(uint64_t,MaxRAM, 1ULL*G);
211 #define CI_COMPILER_COUNT 0
212 #else
213
214 #if defined(COMPILER2) || INCLUDE_JVMCI
215 #define CI_COMPILER_COUNT 2
216 #else
217 #define CI_COMPILER_COUNT 1
218 #endif // COMPILER2 || INCLUDE_JVMCI
219
220 #endif // no compilers
221
222 // string type aliases used only in this file
223 typedef const char* ccstr;
224 typedef const char* ccstrlist; // represents string arguments which accumulate
225
226 struct Flag {
227 enum Flags {
228 // value origin
229 DEFAULT = 0,
230 COMMAND_LINE = 1,
231 ENVIRON_VAR = 2,
232 CONFIG_FILE = 3,
233 MANAGEMENT = 4,
234 ERGONOMIC = 5,
235 ATTACH_ON_DEMAND = 6,
236 INTERNAL = 7,
237
238 LAST_VALUE_ORIGIN = INTERNAL,
239 VALUE_ORIGIN_BITS = 4,
240 VALUE_ORIGIN_MASK = right_n_bits(VALUE_ORIGIN_BITS),
241
242 // flag kind
243 KIND_PRODUCT = 1 << 4,
244 KIND_MANAGEABLE = 1 << 5,
245 KIND_DIAGNOSTIC = 1 << 6,
246 KIND_EXPERIMENTAL = 1 << 7,
247 KIND_NOT_PRODUCT = 1 << 8,
248 KIND_DEVELOP = 1 << 9,
249 KIND_PLATFORM_DEPENDENT = 1 << 10,
250 KIND_READ_WRITE = 1 << 11,
251 KIND_C1 = 1 << 12,
252 KIND_C2 = 1 << 13,
253 KIND_ARCH = 1 << 14,
254 KIND_SHARK = 1 << 15,
255 KIND_LP64_PRODUCT = 1 << 16,
256 KIND_COMMERCIAL = 1 << 17,
257 KIND_JVMCI = 1 << 18,
258
259 KIND_MASK = ~VALUE_ORIGIN_MASK
260 };
261
262 enum Error {
263 // no error
264 SUCCESS = 0,
265 // flag name is missing
266 MISSING_NAME,
267 // flag value is missing
268 MISSING_VALUE,
269 // error parsing the textual form of the value
270 WRONG_FORMAT,
271 // flag is not writeable
272 NON_WRITABLE,
273 // flag value is outside of its bounds
274 OUT_OF_BOUNDS,
275 // flag value violates its constraint
276 VIOLATES_CONSTRAINT,
277 // there is no flag with the given name
1082 "Restore the FPU control word after every JNI call (expensive)") \
1083 \
1084 diagnostic(bool, PrintCompilation2, false, \
1085 "Print additional statistics per compilation") \
1086 \
1087 diagnostic(bool, PrintAdapterHandlers, false, \
1088 "Print code generated for i2c/c2i adapters") \
1089 \
1090 diagnostic(bool, VerifyAdapterCalls, trueInDebug, \
1091 "Verify that i2c/c2i adapters are called properly") \
1092 \
1093 develop(bool, VerifyAdapterSharing, false, \
1094 "Verify that the code for shared adapters is the equivalent") \
1095 \
1096 diagnostic(bool, PrintAssembly, false, \
1097 "Print assembly code (using external disassembler.so)") \
1098 \
1099 diagnostic(ccstr, PrintAssemblyOptions, NULL, \
1100 "Print options string passed to disassembler.so") \
1101 \
1102 notproduct(bool, PrintNMethodStatistics, false, \
1103 "Print a summary statistic for the generated nmethods") \
1104 \
1105 diagnostic(bool, PrintNMethods, false, \
1106 "Print assembly code for nmethods when generated") \
1107 \
1108 diagnostic(intx, PrintNMethodsAtLevel, -1, \
1109 "Only print code for nmethods at the given compilation level") \
1110 \
1111 diagnostic(bool, PrintNativeNMethods, false, \
1112 "Print assembly code for native nmethods when generated") \
1113 \
1114 develop(bool, PrintDebugInfo, false, \
1115 "Print debug information for all nmethods when generated") \
1116 \
1117 develop(bool, PrintRelocations, false, \
1118 "Print relocation information for all nmethods when generated") \
1119 \
1120 develop(bool, PrintDependencies, false, \
1121 "Print dependency information for all nmethods when generated") \
1122 \
1123 develop(bool, PrintExceptionHandlers, false, \
1124 "Print exception handler tables for all nmethods when generated") \
1125 \
1126 develop(bool, StressCompiledExceptionHandlers, false, \
1127 "Exercise compiled exception handlers") \
1128 \
1129 develop(bool, InterceptOSException, false, \
1130 "Start debugger when an implicit OS (e.g. NULL) " \
3053 product(intx, AllocatePrefetchDistance, -1, \
3054 "Distance to prefetch ahead of allocation pointer") \
3055 \
3056 product(intx, AllocatePrefetchLines, 3, \
3057 "Number of lines to prefetch ahead of array allocation pointer") \
3058 \
3059 product(intx, AllocateInstancePrefetchLines, 1, \
3060 "Number of lines to prefetch ahead of instance allocation " \
3061 "pointer") \
3062 \
3063 product(intx, AllocatePrefetchStepSize, 16, \
3064 "Step size in bytes of sequential prefetch instructions") \
3065 \
3066 product(intx, AllocatePrefetchInstr, 0, \
3067 "Prefetch instruction to prefetch ahead of allocation pointer") \
3068 \
3069 /* deoptimization */ \
3070 develop(bool, TraceDeoptimization, false, \
3071 "Trace deoptimization") \
3072 \
3073 develop(bool, PrintDeoptimizationDetails, false, \
3074 "Print more information about deoptimization") \
3075 \
3076 develop(bool, DebugDeoptimization, false, \
3077 "Tracing various information while debugging deoptimization") \
3078 \
3079 product(intx, SelfDestructTimer, 0, \
3080 "Will cause VM to terminate after a given time (in minutes) " \
3081 "(0 means off)") \
3082 \
3083 product(intx, MaxJavaStackTraceDepth, 1024, \
3084 "The maximum number of lines in the stack trace for Java " \
3085 "exceptions (0 means all)") \
3086 \
3087 NOT_EMBEDDED(diagnostic(intx, GuaranteedSafepointInterval, 1000, \
3088 "Guarantee a safepoint (at least) every so many milliseconds " \
3089 "(0 means none)")) \
3090 \
3091 EMBEDDED_ONLY(product(intx, GuaranteedSafepointInterval, 0, \
3092 "Guarantee a safepoint (at least) every so many milliseconds " \
3093 "(0 means none)")) \
3094 \
3095 product(intx, SafepointTimeoutDelay, 10000, \
3205 "Number of exits until DeoptimizeALot kicks in") \
3206 \
3207 notproduct(intx, ZombieALotInterval, 5, \
3208 "Number of exits until ZombieALot kicks in") \
3209 \
3210 diagnostic(intx, MallocVerifyInterval, 0, \
3211 "If non-zero, verify C heap after every N calls to " \
3212 "malloc/realloc/free") \
3213 \
3214 diagnostic(intx, MallocVerifyStart, 0, \
3215 "If non-zero, start verifying C heap after Nth call to " \
3216 "malloc/realloc/free") \
3217 \
3218 diagnostic(uintx, MallocMaxTestWords, 0, \
3219 "If non-zero, maximum number of words that malloc/realloc can " \
3220 "allocate (for testing only)") \
3221 \
3222 product(intx, TypeProfileWidth, 2, \
3223 "Number of receiver types to record in call/cast profile") \
3224 \
3225 experimental(intx, MethodProfileWidth, 0, \
3226 "Number of methods to record in call profile") \
3227 \
3228 develop(intx, BciProfileWidth, 2, \
3229 "Number of return bci's to record in ret profile") \
3230 \
3231 product(intx, PerMethodRecompilationCutoff, 400, \
3232 "After recompiling N times, stay in the interpreter (-1=>'Inf')") \
3233 range(-1, max_intx) \
3234 \
3235 product(intx, PerBytecodeRecompilationCutoff, 200, \
3236 "Per-BCI limit on repeated recompilation (-1=>'Inf')") \
3237 range(-1, max_intx) \
3238 \
3239 product(intx, PerMethodTrapLimit, 100, \
3240 "Limit on traps (of one kind) in a method (includes inlines)") \
3241 \
3242 experimental(intx, PerMethodSpecTrapLimit, 5000, \
3243 "Limit on speculative traps (of one kind) in a method " \
3244 "(includes inlines)") \
3245 \
3246 product(intx, PerBytecodeTrapLimit, 4, \
3247 "Limit on traps (of one kind) at a particular BCI") \
3743 \
3744 product(intx, Tier3BackedgeNotifyFreqLog, 13, \
3745 "C1 with MDO profiling (tier 3) invocation notification " \
3746 "frequency") \
3747 \
3748 product(intx, Tier2CompileThreshold, 0, \
3749 "threshold at which tier 2 compilation is invoked") \
3750 \
3751 product(intx, Tier2BackEdgeThreshold, 0, \
3752 "Back edge threshold at which tier 2 compilation is invoked") \
3753 \
3754 product(intx, Tier3InvocationThreshold, 200, \
3755 "Compile if number of method invocations crosses this " \
3756 "threshold") \
3757 \
3758 product(intx, Tier3MinInvocationThreshold, 100, \
3759 "Minimum invocation to compile at tier 3") \
3760 \
3761 product(intx, Tier3CompileThreshold, 2000, \
3762 "Threshold at which tier 3 compilation is invoked (invocation " \
3763 "minimum must be satisfied)") \
3764 \
3765 product(intx, Tier3BackEdgeThreshold, 60000, \
3766 "Back edge threshold at which tier 3 OSR compilation is invoked") \
3767 \
3768 product(intx, Tier4InvocationThreshold, 5000, \
3769 "Compile if number of method invocations crosses this " \
3770 "threshold") \
3771 \
3772 product(intx, Tier4MinInvocationThreshold, 600, \
3773 "Minimum invocation to compile at tier 4") \
3774 \
3775 product(intx, Tier4CompileThreshold, 15000, \
3776 "Threshold at which tier 4 compilation is invoked (invocation " \
3777 "minimum must be satisfied") \
3778 \
3779 product(intx, Tier4BackEdgeThreshold, 40000, \
3780 "Back edge threshold at which tier 4 OSR compilation is invoked") \
3781 \
3782 product(intx, Tier3DelayOn, 5, \
3783 "If C2 queue size grows over this amount per compiler thread " \
|