Mercurial > hg > graal-compiler
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, \ |