2227 _backedge_counter_start = backedge_count();
2228 }
2229
2230 InvocationCounter* invocation_counter() { return &_invocation_counter; }
2231 InvocationCounter* backedge_counter() { return &_backedge_counter; }
2232
2233 #if INCLUDE_JVMCI
2234 FailedSpeculation** get_failed_speculations_address() {
2235 return &_failed_speculations;
2236 }
2237 #endif
2238
2239 #if INCLUDE_RTM_OPT
2240 int rtm_state() const {
2241 return _rtm_state;
2242 }
2243 void set_rtm_state(RTMState rstate) {
2244 _rtm_state = (int)rstate;
2245 }
2246 void atomic_set_rtm_state(RTMState rstate) {
2247 Atomic::store((int)rstate, &_rtm_state);
2248 }
2249
2250 static int rtm_state_offset_in_bytes() {
2251 return offset_of(MethodData, _rtm_state);
2252 }
2253 #endif
2254
2255 void set_would_profile(bool p) { _would_profile = p ? profile : no_profile; }
2256 bool would_profile() const { return _would_profile != no_profile; }
2257
2258 int num_loops() const { return _num_loops; }
2259 void set_num_loops(int n) { _num_loops = n; }
2260 int num_blocks() const { return _num_blocks; }
2261 void set_num_blocks(int n) { _num_blocks = n; }
2262
2263 bool is_mature() const; // consult mileage and ProfileMaturityPercentage
2264 static int mileage_of(Method* m);
2265
2266 // Support for interprocedural escape analysis, from Thomas Kotzmann.
2267 enum EscapeFlag {
|
2227 _backedge_counter_start = backedge_count();
2228 }
2229
2230 InvocationCounter* invocation_counter() { return &_invocation_counter; }
2231 InvocationCounter* backedge_counter() { return &_backedge_counter; }
2232
2233 #if INCLUDE_JVMCI
2234 FailedSpeculation** get_failed_speculations_address() {
2235 return &_failed_speculations;
2236 }
2237 #endif
2238
2239 #if INCLUDE_RTM_OPT
2240 int rtm_state() const {
2241 return _rtm_state;
2242 }
2243 void set_rtm_state(RTMState rstate) {
2244 _rtm_state = (int)rstate;
2245 }
2246 void atomic_set_rtm_state(RTMState rstate) {
2247 Atomic::store(&_rtm_state, (int)rstate);
2248 }
2249
2250 static int rtm_state_offset_in_bytes() {
2251 return offset_of(MethodData, _rtm_state);
2252 }
2253 #endif
2254
2255 void set_would_profile(bool p) { _would_profile = p ? profile : no_profile; }
2256 bool would_profile() const { return _would_profile != no_profile; }
2257
2258 int num_loops() const { return _num_loops; }
2259 void set_num_loops(int n) { _num_loops = n; }
2260 int num_blocks() const { return _num_blocks; }
2261 void set_num_blocks(int n) { _num_blocks = n; }
2262
2263 bool is_mature() const; // consult mileage and ProfileMaturityPercentage
2264 static int mileage_of(Method* m);
2265
2266 // Support for interprocedural escape analysis, from Thomas Kotzmann.
2267 enum EscapeFlag {
|