Mercurial > hg > graal-compiler
comparison src/share/vm/oops/methodOop.hpp @ 2348:5d8f5a6dced7
7020403: Add AdvancedCompilationPolicy for tiered
Summary: This implements adaptive tiered compilation policy.
Reviewed-by: kvn, never
author | iveresov |
---|---|
date | Fri, 04 Mar 2011 15:14:16 -0800 |
parents | f77b3ec064b0 |
children | 799d8ccf63cf |
comparison
equal
deleted
inserted
replaced
2325:8c9c9ee30d71 | 2348:5d8f5a6dced7 |
---|---|
82 // | num_breakpoints | (unused) | | 82 // | num_breakpoints | (unused) | |
83 // |------------------------------------------------------| | 83 // |------------------------------------------------------| |
84 // | invocation_counter | | 84 // | invocation_counter | |
85 // | backedge_counter | | 85 // | backedge_counter | |
86 // |------------------------------------------------------| | 86 // |------------------------------------------------------| |
87 // | prev_time (tiered only, 64 bit wide) | | |
88 // | | | |
89 // |------------------------------------------------------| | |
90 // | rate (tiered) | | |
91 // |------------------------------------------------------| | |
87 // | code (pointer) | | 92 // | code (pointer) | |
88 // | i2i (pointer) | | 93 // | i2i (pointer) | |
89 // | adapter (pointer) | | 94 // | adapter (pointer) | |
90 // | from_compiled_entry (pointer) | | 95 // | from_compiled_entry (pointer) | |
91 // | from_interpreted_entry (pointer) | | 96 // | from_interpreted_entry (pointer) | |
122 u2 _interpreter_throwout_count; // Count of times method was exited via exception while interpreting | 127 u2 _interpreter_throwout_count; // Count of times method was exited via exception while interpreting |
123 u2 _number_of_breakpoints; // fullspeed debugging support | 128 u2 _number_of_breakpoints; // fullspeed debugging support |
124 InvocationCounter _invocation_counter; // Incremented before each activation of the method - used to trigger frequency-based optimizations | 129 InvocationCounter _invocation_counter; // Incremented before each activation of the method - used to trigger frequency-based optimizations |
125 InvocationCounter _backedge_counter; // Incremented before each backedge taken - used to trigger frequencey-based optimizations | 130 InvocationCounter _backedge_counter; // Incremented before each backedge taken - used to trigger frequencey-based optimizations |
126 | 131 |
132 #ifdef TIERED | |
133 jlong _prev_time; // Previous time the rate was acquired | |
134 float _rate; // Events (invocation and backedge counter increments) per millisecond | |
135 #endif | |
136 | |
127 #ifndef PRODUCT | 137 #ifndef PRODUCT |
128 int _compiled_invocation_count; // Number of nmethod invocations so far (for perf. debugging) | 138 int _compiled_invocation_count; // Number of nmethod invocations so far (for perf. debugging) |
129 #endif | 139 #endif |
130 // Entry point for calling both from and to the interpreter. | 140 // Entry point for calling both from and to the interpreter. |
131 address _i2i_entry; // All-args-on-stack calling convention | 141 address _i2i_entry; // All-args-on-stack calling convention |
301 } | 311 } |
302 | 312 |
303 // invocation counter | 313 // invocation counter |
304 InvocationCounter* invocation_counter() { return &_invocation_counter; } | 314 InvocationCounter* invocation_counter() { return &_invocation_counter; } |
305 InvocationCounter* backedge_counter() { return &_backedge_counter; } | 315 InvocationCounter* backedge_counter() { return &_backedge_counter; } |
316 | |
317 #ifdef TIERED | |
318 // We are reusing interpreter_invocation_count as a holder for the previous event count! | |
319 // We can do that since interpreter_invocation_count is not used in tiered. | |
320 int prev_event_count() const { return _interpreter_invocation_count; } | |
321 void set_prev_event_count(int count) { _interpreter_invocation_count = count; } | |
322 jlong prev_time() const { return _prev_time; } | |
323 void set_prev_time(jlong time) { _prev_time = time; } | |
324 float rate() const { return _rate; } | |
325 void set_rate(float rate) { _rate = rate; } | |
326 #endif | |
306 | 327 |
307 int invocation_count(); | 328 int invocation_count(); |
308 int backedge_count(); | 329 int backedge_count(); |
309 | 330 |
310 bool was_executed_more_than(int n); | 331 bool was_executed_more_than(int n); |