470 // Saturate the add if it overflows.
471 if (total_count < old_count || total_count < md_count)
472 total_count = (uint)-1;
473 C->set_trap_count(reason, total_count);
474 if (log != NULL)
475 log->elem("observe trap='%s' count='%d' total='%d'",
476 Deoptimization::trap_reason_name(reason),
477 md_count, total_count);
478 }
479 }
480 // Accumulate total sum of decompilations, also.
481 C->set_decompile_count(C->decompile_count() + md->decompile_count());
482
483 _count_invocations = C->do_count_invocations();
484 _method_data_update = C->do_method_data_update();
485
486 if (log != NULL && method()->has_exception_handlers()) {
487 log->elem("observe that='has_exception_handlers'");
488 }
489
490 assert(method()->can_be_compiled(), "Can not parse this method, cutout earlier");
491 assert(method()->has_balanced_monitors(), "Can not parse unbalanced monitors, cutout earlier");
492
493 // Always register dependence if JVMTI is enabled, because
494 // either breakpoint setting or hotswapping of methods may
495 // cause deoptimization.
496 if (C->env()->jvmti_can_hotswap_or_post_breakpoint()) {
497 C->dependencies()->assert_evol_method(method());
498 }
499
500 NOT_PRODUCT(methods_seen++);
501
502 // Do some special top-level things.
503 if (depth() == 1 && C->is_osr_compilation()) {
504 _entry_bci = C->entry_bci();
505 _flow = method()->get_osr_flow_analysis(osr_bci());
506 if (_flow->failing()) {
507 C->record_method_not_compilable(_flow->failure_reason());
508 #ifndef PRODUCT
509 if (PrintOpto && (Verbose || WizardMode)) {
510 tty->print_cr("OSR @%d type flow bailout: %s", _entry_bci, _flow->failure_reason());
|
470 // Saturate the add if it overflows.
471 if (total_count < old_count || total_count < md_count)
472 total_count = (uint)-1;
473 C->set_trap_count(reason, total_count);
474 if (log != NULL)
475 log->elem("observe trap='%s' count='%d' total='%d'",
476 Deoptimization::trap_reason_name(reason),
477 md_count, total_count);
478 }
479 }
480 // Accumulate total sum of decompilations, also.
481 C->set_decompile_count(C->decompile_count() + md->decompile_count());
482
483 _count_invocations = C->do_count_invocations();
484 _method_data_update = C->do_method_data_update();
485
486 if (log != NULL && method()->has_exception_handlers()) {
487 log->elem("observe that='has_exception_handlers'");
488 }
489
490 assert(InlineTree::check_can_parse(method()) == NULL, "Can not parse this method, cutout earlier");
491 assert(method()->has_balanced_monitors(), "Can not parse unbalanced monitors, cutout earlier");
492
493 // Always register dependence if JVMTI is enabled, because
494 // either breakpoint setting or hotswapping of methods may
495 // cause deoptimization.
496 if (C->env()->jvmti_can_hotswap_or_post_breakpoint()) {
497 C->dependencies()->assert_evol_method(method());
498 }
499
500 NOT_PRODUCT(methods_seen++);
501
502 // Do some special top-level things.
503 if (depth() == 1 && C->is_osr_compilation()) {
504 _entry_bci = C->entry_bci();
505 _flow = method()->get_osr_flow_analysis(osr_bci());
506 if (_flow->failing()) {
507 C->record_method_not_compilable(_flow->failure_reason());
508 #ifndef PRODUCT
509 if (PrintOpto && (Verbose || WizardMode)) {
510 tty->print_cr("OSR @%d type flow bailout: %s", _entry_bci, _flow->failure_reason());
|