comparison src/share/vm/runtime/globals.hpp @ 1783:d5d065957597

6953144: Tiered compilation Summary: Infrastructure for tiered compilation support (interpreter + c1 + c2) for 32 and 64 bit. Simple tiered policy implementation. Reviewed-by: kvn, never, phh, twisti
author iveresov
date Fri, 03 Sep 2010 17:51:07 -0700
parents b4099f5786da
children 18c378513575
comparison
equal deleted inserted replaced
1782:f353275af40e 1783:d5d065957597
33 define_pd_global(bool, ProfileInterpreter, false); 33 define_pd_global(bool, ProfileInterpreter, false);
34 define_pd_global(bool, ProfileTraps, false); 34 define_pd_global(bool, ProfileTraps, false);
35 define_pd_global(bool, TieredCompilation, false); 35 define_pd_global(bool, TieredCompilation, false);
36 36
37 define_pd_global(intx, CompileThreshold, 0); 37 define_pd_global(intx, CompileThreshold, 0);
38 define_pd_global(intx, Tier2CompileThreshold, 0);
39 define_pd_global(intx, Tier3CompileThreshold, 0);
40 define_pd_global(intx, Tier4CompileThreshold, 0);
41
42 define_pd_global(intx, BackEdgeThreshold, 0); 38 define_pd_global(intx, BackEdgeThreshold, 0);
43 define_pd_global(intx, Tier2BackEdgeThreshold, 0);
44 define_pd_global(intx, Tier3BackEdgeThreshold, 0);
45 define_pd_global(intx, Tier4BackEdgeThreshold, 0);
46 39
47 define_pd_global(intx, OnStackReplacePercentage, 0); 40 define_pd_global(intx, OnStackReplacePercentage, 0);
48 define_pd_global(bool, ResizeTLAB, false); 41 define_pd_global(bool, ResizeTLAB, false);
49 define_pd_global(intx, FreqInlineSize, 0); 42 define_pd_global(intx, FreqInlineSize, 0);
50 define_pd_global(intx, InlineSmallCode, 0); 43 define_pd_global(intx, InlineSmallCode, 0);
1969 "Supplement to TenuredGenerationSizeIncrement used at startup") \ 1962 "Supplement to TenuredGenerationSizeIncrement used at startup") \
1970 \ 1963 \
1971 product(uintx, TenuredGenerationSizeSupplementDecay, 2, \ 1964 product(uintx, TenuredGenerationSizeSupplementDecay, 2, \
1972 "Decay factor to TenuredGenerationSizeIncrement") \ 1965 "Decay factor to TenuredGenerationSizeIncrement") \
1973 \ 1966 \
1974 product(uintx, MaxGCPauseMillis, max_uintx, \ 1967 product(uintx, MaxGCPauseMillis, max_uintx, \
1975 "Adaptive size policy maximum GC pause time goal in msec, " \ 1968 "Adaptive size policy maximum GC pause time goal in msec, " \
1976 "or (G1 Only) the max. GC time per MMU time slice") \ 1969 "or (G1 Only) the max. GC time per MMU time slice") \
1977 \ 1970 \
1978 product(uintx, GCPauseIntervalMillis, 0, \ 1971 product(uintx, GCPauseIntervalMillis, 0, \
1979 "Time slice for MMU specification") \ 1972 "Time slice for MMU specification") \
2363 develop(bool, StressReflectiveCode, false, \ 2356 develop(bool, StressReflectiveCode, false, \
2364 "Use inexact types at allocations, etc., to test reflection") \ 2357 "Use inexact types at allocations, etc., to test reflection") \
2365 \ 2358 \
2366 develop(bool, EagerInitialization, false, \ 2359 develop(bool, EagerInitialization, false, \
2367 "Eagerly initialize classes if possible") \ 2360 "Eagerly initialize classes if possible") \
2368 \
2369 product(bool, Tier1UpdateMethodData, trueInTiered, \
2370 "Update methodDataOops in Tier1-generated code") \
2371 \ 2361 \
2372 develop(bool, TraceMethodReplacement, false, \ 2362 develop(bool, TraceMethodReplacement, false, \
2373 "Print when methods are replaced do to recompilation") \ 2363 "Print when methods are replaced do to recompilation") \
2374 \ 2364 \
2375 develop(bool, PrintMethodFlushing, false, \ 2365 develop(bool, PrintMethodFlushing, false, \
2896 \ 2886 \
2897 diagnostic(intx, MallocVerifyStart, 0, \ 2887 diagnostic(intx, MallocVerifyStart, 0, \
2898 "if non-zero, start verifying C heap after Nth call to " \ 2888 "if non-zero, start verifying C heap after Nth call to " \
2899 "malloc/realloc/free") \ 2889 "malloc/realloc/free") \
2900 \ 2890 \
2901 product(intx, TypeProfileWidth, 2, \ 2891 product(intx, TypeProfileWidth, 2, \
2902 "number of receiver types to record in call/cast profile") \ 2892 "number of receiver types to record in call/cast profile") \
2903 \ 2893 \
2904 develop(intx, BciProfileWidth, 2, \ 2894 develop(intx, BciProfileWidth, 2, \
2905 "number of return bci's to record in ret profile") \ 2895 "number of return bci's to record in ret profile") \
2906 \ 2896 \
3304 "number of interpreted method invocations before (re-)compiling") \ 3294 "number of interpreted method invocations before (re-)compiling") \
3305 \ 3295 \
3306 product_pd(intx, BackEdgeThreshold, \ 3296 product_pd(intx, BackEdgeThreshold, \
3307 "Interpreter Back edge threshold at which an OSR compilation is invoked")\ 3297 "Interpreter Back edge threshold at which an OSR compilation is invoked")\
3308 \ 3298 \
3309 product(intx, Tier1BytecodeLimit, 10, \ 3299 product(intx, Tier0InvokeNotifyFreqLog, 7, \
3310 "Must have at least this many bytecodes before tier1" \ 3300 "Interpreter (tier 0) invocation notification frequency.") \
3311 "invocation counters are used") \ 3301 \
3312 \ 3302 product(intx, Tier2InvokeNotifyFreqLog, 11, \
3313 product_pd(intx, Tier2CompileThreshold, \ 3303 "C1 without MDO (tier 2) invocation notification frequency.") \
3314 "threshold at which a tier 2 compilation is invoked") \ 3304 \
3315 \ 3305 product(intx, Tier3InvokeNotifyFreqLog, 10, \
3316 product_pd(intx, Tier2BackEdgeThreshold, \ 3306 "C1 with MDO profiling (tier 3) invocation notification " \
3317 "Back edge threshold at which a tier 2 compilation is invoked") \ 3307 "frequency.") \
3318 \ 3308 \
3319 product_pd(intx, Tier3CompileThreshold, \ 3309 product(intx, Tier0BackedgeNotifyFreqLog, 10, \
3320 "threshold at which a tier 3 compilation is invoked") \ 3310 "Interpreter (tier 0) invocation notification frequency.") \
3321 \ 3311 \
3322 product_pd(intx, Tier3BackEdgeThreshold, \ 3312 product(intx, Tier2BackedgeNotifyFreqLog, 14, \
3323 "Back edge threshold at which a tier 3 compilation is invoked") \ 3313 "C1 without MDO (tier 2) invocation notification frequency.") \
3324 \ 3314 \
3325 product_pd(intx, Tier4CompileThreshold, \ 3315 product(intx, Tier3BackedgeNotifyFreqLog, 13, \
3326 "threshold at which a tier 4 compilation is invoked") \ 3316 "C1 with MDO profiling (tier 3) invocation notification " \
3327 \ 3317 "frequency.") \
3328 product_pd(intx, Tier4BackEdgeThreshold, \ 3318 \
3329 "Back edge threshold at which a tier 4 compilation is invoked") \ 3319 product(intx, Tier2CompileThreshold, 0, \
3320 "threshold at which tier 2 compilation is invoked") \
3321 \
3322 product(intx, Tier2BackEdgeThreshold, 0, \
3323 "Back edge threshold at which tier 2 compilation is invoked") \
3324 \
3325 product(intx, Tier3InvocationThreshold, 200, \
3326 "Compile if number of method invocations crosses this " \
3327 "threshold") \
3328 \
3329 product(intx, Tier3MinInvocationThreshold, 100, \
3330 "Minimum invocation to compile at tier 3") \
3331 \
3332 product(intx, Tier3CompileThreshold, 2000, \
3333 "Threshold at which tier 3 compilation is invoked (invocation " \
3334 "minimum must be satisfied.") \
3335 \
3336 product(intx, Tier3BackEdgeThreshold, 7000, \
3337 "Back edge threshold at which tier 3 OSR compilation is invoked") \
3338 \
3339 product(intx, Tier4InvocationThreshold, 5000, \
3340 "Compile if number of method invocations crosses this " \
3341 "threshold") \
3342 \
3343 product(intx, Tier4MinInvocationThreshold, 600, \
3344 "Minimum invocation to compile at tier 4") \
3345 \
3346 product(intx, Tier4CompileThreshold, 15000, \
3347 "Threshold at which tier 4 compilation is invoked (invocation " \
3348 "minimum must be satisfied.") \
3349 \
3350 product(intx, Tier4BackEdgeThreshold, 40000, \
3351 "Back edge threshold at which tier 4 OSR compilation is invoked") \
3352 \
3353 product(intx, Tier3DelayOn, 5, \
3354 "If C2 queue size grows over this amount per compiler thread " \
3355 "stop compiling at tier 3 and start compiling at tier 2") \
3356 \
3357 product(intx, Tier3DelayOff, 2, \
3358 "If C2 queue size is less than this amount per compiler thread " \
3359 "allow methods compiled at tier 2 transition to tier 3") \
3360 \
3361 product(intx, Tier3LoadFeedback, 5, \
3362 "Tier 3 thresholds will increase twofold when C1 queue size " \
3363 "reaches this amount per compiler thread") \
3364 \
3365 product(intx, Tier4LoadFeedback, 3, \
3366 "Tier 4 thresholds will increase twofold when C2 queue size " \
3367 "reaches this amount per compiler thread") \
3368 \
3369 product(intx, TieredCompileTaskTimeout, 50, \
3370 "Kill compile task if method was not used within " \
3371 "given timeout in milliseconds") \
3372 \
3373 product(intx, TieredStopAtLevel, 4, \
3374 "Stop at given compilation level") \
3375 \
3376 product(intx, Tier0ProfilingStartPercentage, 200, \
3377 "Start profiling in interpreter if the counters exceed tier 3" \
3378 "thresholds by the specified percentage") \
3379 \
3380 product(intx, TieredRateUpdateMinTime, 1, \
3381 "Minimum rate sampling interval (in milliseconds)") \
3382 \
3383 product(intx, TieredRateUpdateMaxTime, 25, \
3384 "Maximum rate sampling interval (in milliseconds)") \
3330 \ 3385 \
3331 product_pd(bool, TieredCompilation, \ 3386 product_pd(bool, TieredCompilation, \
3332 "Enable two-tier compilation") \ 3387 "Enable tiered compilation") \
3388 \
3389 product(bool, PrintTieredEvents, false, \
3390 "Print tiered events notifications") \
3333 \ 3391 \
3334 product(bool, StressTieredRuntime, false, \ 3392 product(bool, StressTieredRuntime, false, \
3335 "Alternate client and server compiler on compile requests") \ 3393 "Alternate client and server compiler on compile requests") \
3336 \ 3394 \
3337 product_pd(intx, OnStackReplacePercentage, \ 3395 product_pd(intx, OnStackReplacePercentage, \