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
1095 "Memory map entire runtime image") \
1096 \
1097 diagnostic(bool, PrintCompilation2, false, \
1098 "Print additional statistics per compilation") \
1099 \
1100 diagnostic(bool, PrintAdapterHandlers, false, \
1101 "Print code generated for i2c/c2i adapters") \
1102 \
1103 diagnostic(bool, VerifyAdapterCalls, trueInDebug, \
1104 "Verify that i2c/c2i adapters are called properly") \
1105 \
1106 develop(bool, VerifyAdapterSharing, false, \
1107 "Verify that the code for shared adapters is the equivalent") \
1108 \
1109 diagnostic(bool, PrintAssembly, false, \
1110 "Print assembly code (using external disassembler.so)") \
1111 \
1112 diagnostic(ccstr, PrintAssemblyOptions, NULL, \
1113 "Print options string passed to disassembler.so") \
1114 \
1115 diagnostic(bool, PrintNMethods, false, \
1116 "Print assembly code for nmethods when generated") \
1117 \
1118 diagnostic(bool, PrintNativeNMethods, false, \
1119 "Print assembly code for native nmethods when generated") \
1120 \
1121 develop(bool, PrintDebugInfo, false, \
1122 "Print debug information for all nmethods when generated") \
1123 \
1124 develop(bool, PrintRelocations, false, \
1125 "Print relocation information for all nmethods when generated") \
1126 \
1127 develop(bool, PrintDependencies, false, \
1128 "Print dependency information for all nmethods when generated") \
1129 \
1130 develop(bool, PrintExceptionHandlers, false, \
1131 "Print exception handler tables for all nmethods when generated") \
1132 \
1133 develop(bool, StressCompiledExceptionHandlers, false, \
1134 "Exercise compiled exception handlers") \
1135 \
1136 develop(bool, InterceptOSException, false, \
1137 "Start debugger when an implicit OS (e.g. NULL) " \
3068 product(intx, AllocatePrefetchDistance, -1, \
3069 "Distance to prefetch ahead of allocation pointer") \
3070 \
3071 product(intx, AllocatePrefetchLines, 3, \
3072 "Number of lines to prefetch ahead of array allocation pointer") \
3073 \
3074 product(intx, AllocateInstancePrefetchLines, 1, \
3075 "Number of lines to prefetch ahead of instance allocation " \
3076 "pointer") \
3077 \
3078 product(intx, AllocatePrefetchStepSize, 16, \
3079 "Step size in bytes of sequential prefetch instructions") \
3080 \
3081 product(intx, AllocatePrefetchInstr, 0, \
3082 "Prefetch instruction to prefetch ahead of allocation pointer") \
3083 \
3084 /* deoptimization */ \
3085 develop(bool, TraceDeoptimization, false, \
3086 "Trace deoptimization") \
3087 \
3088 develop(bool, DebugDeoptimization, false, \
3089 "Tracing various information while debugging deoptimization") \
3090 \
3091 product(intx, SelfDestructTimer, 0, \
3092 "Will cause VM to terminate after a given time (in minutes) " \
3093 "(0 means off)") \
3094 \
3095 product(intx, MaxJavaStackTraceDepth, 1024, \
3096 "The maximum number of lines in the stack trace for Java " \
3097 "exceptions (0 means all)") \
3098 \
3099 NOT_EMBEDDED(diagnostic(intx, GuaranteedSafepointInterval, 1000, \
3100 "Guarantee a safepoint (at least) every so many milliseconds " \
3101 "(0 means none)")) \
3102 \
3103 EMBEDDED_ONLY(product(intx, GuaranteedSafepointInterval, 0, \
3104 "Guarantee a safepoint (at least) every so many milliseconds " \
3105 "(0 means none)")) \
3106 \
3107 product(intx, SafepointTimeoutDelay, 10000, \
3217 "Number of exits until DeoptimizeALot kicks in") \
3218 \
3219 notproduct(intx, ZombieALotInterval, 5, \
3220 "Number of exits until ZombieALot kicks in") \
3221 \
3222 diagnostic(intx, MallocVerifyInterval, 0, \
3223 "If non-zero, verify C heap after every N calls to " \
3224 "malloc/realloc/free") \
3225 \
3226 diagnostic(intx, MallocVerifyStart, 0, \
3227 "If non-zero, start verifying C heap after Nth call to " \
3228 "malloc/realloc/free") \
3229 \
3230 diagnostic(uintx, MallocMaxTestWords, 0, \
3231 "If non-zero, maximum number of words that malloc/realloc can " \
3232 "allocate (for testing only)") \
3233 \
3234 product(intx, TypeProfileWidth, 2, \
3235 "Number of receiver types to record in call/cast profile") \
3236 \
3237 develop(intx, BciProfileWidth, 2, \
3238 "Number of return bci's to record in ret profile") \
3239 \
3240 product(intx, PerMethodRecompilationCutoff, 400, \
3241 "After recompiling N times, stay in the interpreter (-1=>'Inf')") \
3242 range(-1, max_intx) \
3243 \
3244 product(intx, PerBytecodeRecompilationCutoff, 200, \
3245 "Per-BCI limit on repeated recompilation (-1=>'Inf')") \
3246 range(-1, max_intx) \
3247 \
3248 product(intx, PerMethodTrapLimit, 100, \
3249 "Limit on traps (of one kind) in a method (includes inlines)") \
3250 \
3251 experimental(intx, PerMethodSpecTrapLimit, 5000, \
3252 "Limit on speculative traps (of one kind) in a method " \
3253 "(includes inlines)") \
3254 \
3255 product(intx, PerBytecodeTrapLimit, 4, \
3256 "Limit on traps (of one kind) at a particular BCI") \
3752 \
3753 product(intx, Tier3BackedgeNotifyFreqLog, 13, \
3754 "C1 with MDO profiling (tier 3) invocation notification " \
3755 "frequency") \
3756 \
3757 product(intx, Tier2CompileThreshold, 0, \
3758 "threshold at which tier 2 compilation is invoked") \
3759 \
3760 product(intx, Tier2BackEdgeThreshold, 0, \
3761 "Back edge threshold at which tier 2 compilation is invoked") \
3762 \
3763 product(intx, Tier3InvocationThreshold, 200, \
3764 "Compile if number of method invocations crosses this " \
3765 "threshold") \
3766 \
3767 product(intx, Tier3MinInvocationThreshold, 100, \
3768 "Minimum invocation to compile at tier 3") \
3769 \
3770 product(intx, Tier3CompileThreshold, 2000, \
3771 "Threshold at which tier 3 compilation is invoked (invocation " \
3772 "minimum must be satisfied") \
3773 \
3774 product(intx, Tier3BackEdgeThreshold, 60000, \
3775 "Back edge threshold at which tier 3 OSR compilation is invoked") \
3776 \
3777 product(intx, Tier4InvocationThreshold, 5000, \
3778 "Compile if number of method invocations crosses this " \
3779 "threshold") \
3780 \
3781 product(intx, Tier4MinInvocationThreshold, 600, \
3782 "Minimum invocation to compile at tier 4") \
3783 \
3784 product(intx, Tier4CompileThreshold, 15000, \
3785 "Threshold at which tier 4 compilation is invoked (invocation " \
3786 "minimum must be satisfied") \
3787 \
3788 product(intx, Tier4BackEdgeThreshold, 40000, \
3789 "Back edge threshold at which tier 4 OSR compilation is invoked") \
3790 \
3791 product(intx, Tier3DelayOn, 5, \
3792 "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
1096 "Memory map entire runtime image") \
1097 \
1098 diagnostic(bool, PrintCompilation2, false, \
1099 "Print additional statistics per compilation") \
1100 \
1101 diagnostic(bool, PrintAdapterHandlers, false, \
1102 "Print code generated for i2c/c2i adapters") \
1103 \
1104 diagnostic(bool, VerifyAdapterCalls, trueInDebug, \
1105 "Verify that i2c/c2i adapters are called properly") \
1106 \
1107 develop(bool, VerifyAdapterSharing, false, \
1108 "Verify that the code for shared adapters is the equivalent") \
1109 \
1110 diagnostic(bool, PrintAssembly, false, \
1111 "Print assembly code (using external disassembler.so)") \
1112 \
1113 diagnostic(ccstr, PrintAssemblyOptions, NULL, \
1114 "Print options string passed to disassembler.so") \
1115 \
1116 notproduct(bool, PrintNMethodStatistics, false, \
1117 "Print a summary statistic for the generated nmethods") \
1118 \
1119 product(bool, ShareDebugInfo, IS_JVMCI_DEFINED, \
1120 "Always tries to share similar debug info inside a nmethod") \
1121 \
1122 diagnostic(bool, PrintNMethods, false, \
1123 "Print assembly code for nmethods when generated") \
1124 \
1125 diagnostic(intx, PrintNMethodsAtLevel, -1, \
1126 "Only print code for nmethods at the given compilation level") \
1127 \
1128 diagnostic(bool, PrintNativeNMethods, false, \
1129 "Print assembly code for native nmethods when generated") \
1130 \
1131 develop(bool, PrintDebugInfo, false, \
1132 "Print debug information for all nmethods when generated") \
1133 \
1134 develop(bool, PrintRelocations, false, \
1135 "Print relocation information for all nmethods when generated") \
1136 \
1137 develop(bool, PrintDependencies, false, \
1138 "Print dependency information for all nmethods when generated") \
1139 \
1140 develop(bool, PrintExceptionHandlers, false, \
1141 "Print exception handler tables for all nmethods when generated") \
1142 \
1143 develop(bool, StressCompiledExceptionHandlers, false, \
1144 "Exercise compiled exception handlers") \
1145 \
1146 develop(bool, InterceptOSException, false, \
1147 "Start debugger when an implicit OS (e.g. NULL) " \
3078 product(intx, AllocatePrefetchDistance, -1, \
3079 "Distance to prefetch ahead of allocation pointer") \
3080 \
3081 product(intx, AllocatePrefetchLines, 3, \
3082 "Number of lines to prefetch ahead of array allocation pointer") \
3083 \
3084 product(intx, AllocateInstancePrefetchLines, 1, \
3085 "Number of lines to prefetch ahead of instance allocation " \
3086 "pointer") \
3087 \
3088 product(intx, AllocatePrefetchStepSize, 16, \
3089 "Step size in bytes of sequential prefetch instructions") \
3090 \
3091 product(intx, AllocatePrefetchInstr, 0, \
3092 "Prefetch instruction to prefetch ahead of allocation pointer") \
3093 \
3094 /* deoptimization */ \
3095 develop(bool, TraceDeoptimization, false, \
3096 "Trace deoptimization") \
3097 \
3098 develop(bool, PrintDeoptimizationDetails, false, \
3099 "Print more information about deoptimization") \
3100 \
3101 develop(bool, DebugDeoptimization, false, \
3102 "Tracing various information while debugging deoptimization") \
3103 \
3104 product(intx, SelfDestructTimer, 0, \
3105 "Will cause VM to terminate after a given time (in minutes) " \
3106 "(0 means off)") \
3107 \
3108 product(intx, MaxJavaStackTraceDepth, 1024, \
3109 "The maximum number of lines in the stack trace for Java " \
3110 "exceptions (0 means all)") \
3111 \
3112 NOT_EMBEDDED(diagnostic(intx, GuaranteedSafepointInterval, 1000, \
3113 "Guarantee a safepoint (at least) every so many milliseconds " \
3114 "(0 means none)")) \
3115 \
3116 EMBEDDED_ONLY(product(intx, GuaranteedSafepointInterval, 0, \
3117 "Guarantee a safepoint (at least) every so many milliseconds " \
3118 "(0 means none)")) \
3119 \
3120 product(intx, SafepointTimeoutDelay, 10000, \
3230 "Number of exits until DeoptimizeALot kicks in") \
3231 \
3232 notproduct(intx, ZombieALotInterval, 5, \
3233 "Number of exits until ZombieALot kicks in") \
3234 \
3235 diagnostic(intx, MallocVerifyInterval, 0, \
3236 "If non-zero, verify C heap after every N calls to " \
3237 "malloc/realloc/free") \
3238 \
3239 diagnostic(intx, MallocVerifyStart, 0, \
3240 "If non-zero, start verifying C heap after Nth call to " \
3241 "malloc/realloc/free") \
3242 \
3243 diagnostic(uintx, MallocMaxTestWords, 0, \
3244 "If non-zero, maximum number of words that malloc/realloc can " \
3245 "allocate (for testing only)") \
3246 \
3247 product(intx, TypeProfileWidth, 2, \
3248 "Number of receiver types to record in call/cast profile") \
3249 \
3250 product(intx, MethodProfileWidth, 0, \
3251 "Number of methods to record in call profile") \
3252 \
3253 develop(intx, BciProfileWidth, 2, \
3254 "Number of return bci's to record in ret profile") \
3255 \
3256 product(intx, PerMethodRecompilationCutoff, 400, \
3257 "After recompiling N times, stay in the interpreter (-1=>'Inf')") \
3258 range(-1, max_intx) \
3259 \
3260 product(intx, PerBytecodeRecompilationCutoff, 200, \
3261 "Per-BCI limit on repeated recompilation (-1=>'Inf')") \
3262 range(-1, max_intx) \
3263 \
3264 product(intx, PerMethodTrapLimit, 100, \
3265 "Limit on traps (of one kind) in a method (includes inlines)") \
3266 \
3267 experimental(intx, PerMethodSpecTrapLimit, 5000, \
3268 "Limit on speculative traps (of one kind) in a method " \
3269 "(includes inlines)") \
3270 \
3271 product(intx, PerBytecodeTrapLimit, 4, \
3272 "Limit on traps (of one kind) at a particular BCI") \
3768 \
3769 product(intx, Tier3BackedgeNotifyFreqLog, 13, \
3770 "C1 with MDO profiling (tier 3) invocation notification " \
3771 "frequency") \
3772 \
3773 product(intx, Tier2CompileThreshold, 0, \
3774 "threshold at which tier 2 compilation is invoked") \
3775 \
3776 product(intx, Tier2BackEdgeThreshold, 0, \
3777 "Back edge threshold at which tier 2 compilation is invoked") \
3778 \
3779 product(intx, Tier3InvocationThreshold, 200, \
3780 "Compile if number of method invocations crosses this " \
3781 "threshold") \
3782 \
3783 product(intx, Tier3MinInvocationThreshold, 100, \
3784 "Minimum invocation to compile at tier 3") \
3785 \
3786 product(intx, Tier3CompileThreshold, 2000, \
3787 "Threshold at which tier 3 compilation is invoked (invocation " \
3788 "minimum must be satisfied)") \
3789 \
3790 product(intx, Tier3BackEdgeThreshold, 60000, \
3791 "Back edge threshold at which tier 3 OSR compilation is invoked") \
3792 \
3793 product(intx, Tier4InvocationThreshold, 5000, \
3794 "Compile if number of method invocations crosses this " \
3795 "threshold") \
3796 \
3797 product(intx, Tier4MinInvocationThreshold, 600, \
3798 "Minimum invocation to compile at tier 4") \
3799 \
3800 product(intx, Tier4CompileThreshold, 15000, \
3801 "Threshold at which tier 4 compilation is invoked (invocation " \
3802 "minimum must be satisfied") \
3803 \
3804 product(intx, Tier4BackEdgeThreshold, 40000, \
3805 "Back edge threshold at which tier 4 OSR compilation is invoked") \
3806 \
3807 product(intx, Tier3DelayOn, 5, \
3808 "If C2 queue size grows over this amount per compiler thread " \
|