254
255 // constant pool for Klass* holding this method
256 ConstantPool* constants() const { return constMethod()->constants(); }
257 void set_constants(ConstantPool* c) { constMethod()->set_constants(c); }
258
259 // max stack
260 // return original max stack size for method verification
261 int verifier_max_stack() const { return constMethod()->max_stack(); }
262 int max_stack() const { return constMethod()->max_stack() + extra_stack_entries(); }
263 void set_max_stack(int size) { constMethod()->set_max_stack(size); }
264
265 // max locals
266 int max_locals() const { return constMethod()->max_locals(); }
267 void set_max_locals(int size) { constMethod()->set_max_locals(size); }
268
269 int highest_comp_level() const;
270 void set_highest_comp_level(int level);
271 int highest_osr_comp_level() const;
272 void set_highest_osr_comp_level(int level);
273
274 #if defined(COMPILER2) || INCLUDE_JVMCI
275 // Count of times method was exited via exception while interpreting
276 void interpreter_throwout_increment(TRAPS) {
277 MethodCounters* mcs = get_method_counters(CHECK);
278 if (mcs != NULL) {
279 mcs->interpreter_throwout_increment();
280 }
281 }
282 #endif
283
284 int interpreter_throwout_count() const {
285 MethodCounters* mcs = method_counters();
286 if (mcs == NULL) {
287 return 0;
288 } else {
289 return mcs->interpreter_throwout_count();
290 }
291 }
292
293 // size of parameters
294 int size_of_parameters() const { return constMethod()->size_of_parameters(); }
409 }
410
411 int invocation_count();
412 int backedge_count();
413
414 bool was_executed_more_than(int n);
415 bool was_never_executed() { return !was_executed_more_than(0); }
416
417 static void build_interpreter_method_data(const methodHandle& method, TRAPS);
418
419 static MethodCounters* build_method_counters(Method* m, TRAPS);
420
421 int interpreter_invocation_count() {
422 if (TieredCompilation) {
423 return invocation_count();
424 } else {
425 MethodCounters* mcs = method_counters();
426 return (mcs == NULL) ? 0 : mcs->interpreter_invocation_count();
427 }
428 }
429 #if defined(COMPILER2) || INCLUDE_JVMCI
430 int increment_interpreter_invocation_count(TRAPS) {
431 if (TieredCompilation) ShouldNotReachHere();
432 MethodCounters* mcs = get_method_counters(CHECK_0);
433 return (mcs == NULL) ? 0 : mcs->increment_interpreter_invocation_count();
434 }
435 #endif
436
437 #ifndef PRODUCT
438 int compiled_invocation_count() const { return _compiled_invocation_count; }
439 void set_compiled_invocation_count(int count) { _compiled_invocation_count = count; }
440 #else
441 // for PrintMethodData in a product build
442 int compiled_invocation_count() const { return 0; }
443 #endif // not PRODUCT
444
445 // Clear (non-shared space) pointers which could not be relevant
446 // if this (shared) method were mapped into another JVM.
447 void remove_unshareable_info();
448
449 // nmethod/verified compiler entry
|
254
255 // constant pool for Klass* holding this method
256 ConstantPool* constants() const { return constMethod()->constants(); }
257 void set_constants(ConstantPool* c) { constMethod()->set_constants(c); }
258
259 // max stack
260 // return original max stack size for method verification
261 int verifier_max_stack() const { return constMethod()->max_stack(); }
262 int max_stack() const { return constMethod()->max_stack() + extra_stack_entries(); }
263 void set_max_stack(int size) { constMethod()->set_max_stack(size); }
264
265 // max locals
266 int max_locals() const { return constMethod()->max_locals(); }
267 void set_max_locals(int size) { constMethod()->set_max_locals(size); }
268
269 int highest_comp_level() const;
270 void set_highest_comp_level(int level);
271 int highest_osr_comp_level() const;
272 void set_highest_osr_comp_level(int level);
273
274 #if COMPILER2_OR_JVMCI
275 // Count of times method was exited via exception while interpreting
276 void interpreter_throwout_increment(TRAPS) {
277 MethodCounters* mcs = get_method_counters(CHECK);
278 if (mcs != NULL) {
279 mcs->interpreter_throwout_increment();
280 }
281 }
282 #endif
283
284 int interpreter_throwout_count() const {
285 MethodCounters* mcs = method_counters();
286 if (mcs == NULL) {
287 return 0;
288 } else {
289 return mcs->interpreter_throwout_count();
290 }
291 }
292
293 // size of parameters
294 int size_of_parameters() const { return constMethod()->size_of_parameters(); }
409 }
410
411 int invocation_count();
412 int backedge_count();
413
414 bool was_executed_more_than(int n);
415 bool was_never_executed() { return !was_executed_more_than(0); }
416
417 static void build_interpreter_method_data(const methodHandle& method, TRAPS);
418
419 static MethodCounters* build_method_counters(Method* m, TRAPS);
420
421 int interpreter_invocation_count() {
422 if (TieredCompilation) {
423 return invocation_count();
424 } else {
425 MethodCounters* mcs = method_counters();
426 return (mcs == NULL) ? 0 : mcs->interpreter_invocation_count();
427 }
428 }
429 #if COMPILER2_OR_JVMCI
430 int increment_interpreter_invocation_count(TRAPS) {
431 if (TieredCompilation) ShouldNotReachHere();
432 MethodCounters* mcs = get_method_counters(CHECK_0);
433 return (mcs == NULL) ? 0 : mcs->increment_interpreter_invocation_count();
434 }
435 #endif
436
437 #ifndef PRODUCT
438 int compiled_invocation_count() const { return _compiled_invocation_count; }
439 void set_compiled_invocation_count(int count) { _compiled_invocation_count = count; }
440 #else
441 // for PrintMethodData in a product build
442 int compiled_invocation_count() const { return 0; }
443 #endif // not PRODUCT
444
445 // Clear (non-shared space) pointers which could not be relevant
446 // if this (shared) method were mapped into another JVM.
447 void remove_unshareable_info();
448
449 // nmethod/verified compiler entry
|