< prev index next >

src/hotspot/share/opto/bytecodeInfo.cpp

Print this page




 627     return old_ilt;
 628   }
 629   int max_inline_level_adjust = 0;
 630   if (caller_jvms->method() != NULL) {
 631     if (caller_jvms->method()->is_compiled_lambda_form()) {
 632       max_inline_level_adjust += 1;  // don't count actions in MH or indy adapter frames
 633     } else if (callee_method->is_method_handle_intrinsic() ||
 634                callee_method->is_compiled_lambda_form()) {
 635       max_inline_level_adjust += 1;  // don't count method handle calls from java.lang.invoke implementation
 636     }
 637     if (max_inline_level_adjust != 0 && C->print_inlining() && (Verbose || WizardMode)) {
 638       CompileTask::print_inline_indent(inline_level());
 639       tty->print_cr(" \\-> discounting inline depth");
 640     }
 641     if (max_inline_level_adjust != 0 && C->log()) {
 642       int id1 = C->log()->identify(caller_jvms->method());
 643       int id2 = C->log()->identify(callee_method);
 644       C->log()->elem("inline_level_discount caller='%d' callee='%d'", id1, id2);
 645     }
 646   }
 647   InlineTree* ilt = new InlineTree(C, this, callee_method, caller_jvms, caller_bci, recur_frequency, _max_inline_level + max_inline_level_adjust);

 648   _subtrees.append(ilt);
 649 
 650   NOT_PRODUCT( _count_inlines += 1; )
 651 
 652   return ilt;
 653 }
 654 
 655 
 656 //---------------------------------------callee_at-----------------------------
 657 InlineTree *InlineTree::callee_at(int bci, ciMethod* callee) const {
 658   for (int i = 0; i < _subtrees.length(); i++) {
 659     InlineTree* sub = _subtrees.at(i);
 660     if (sub->caller_bci() == bci && callee == sub->method()) {
 661       return sub;
 662     }
 663   }
 664   return NULL;
 665 }
 666 
 667 




 627     return old_ilt;
 628   }
 629   int max_inline_level_adjust = 0;
 630   if (caller_jvms->method() != NULL) {
 631     if (caller_jvms->method()->is_compiled_lambda_form()) {
 632       max_inline_level_adjust += 1;  // don't count actions in MH or indy adapter frames
 633     } else if (callee_method->is_method_handle_intrinsic() ||
 634                callee_method->is_compiled_lambda_form()) {
 635       max_inline_level_adjust += 1;  // don't count method handle calls from java.lang.invoke implementation
 636     }
 637     if (max_inline_level_adjust != 0 && C->print_inlining() && (Verbose || WizardMode)) {
 638       CompileTask::print_inline_indent(inline_level());
 639       tty->print_cr(" \\-> discounting inline depth");
 640     }
 641     if (max_inline_level_adjust != 0 && C->log()) {
 642       int id1 = C->log()->identify(caller_jvms->method());
 643       int id2 = C->log()->identify(callee_method);
 644       C->log()->elem("inline_level_discount caller='%d' callee='%d'", id1, id2);
 645     }
 646   }
 647   // Allocate in the comp_arena to make sure the InlineTree is live when dumping a replay compilation file
 648   InlineTree* ilt = new (C->comp_arena()) InlineTree(C, this, callee_method, caller_jvms, caller_bci, recur_frequency, _max_inline_level + max_inline_level_adjust);
 649   _subtrees.append(ilt);
 650 
 651   NOT_PRODUCT( _count_inlines += 1; )
 652 
 653   return ilt;
 654 }
 655 
 656 
 657 //---------------------------------------callee_at-----------------------------
 658 InlineTree *InlineTree::callee_at(int bci, ciMethod* callee) const {
 659   for (int i = 0; i < _subtrees.length(); i++) {
 660     InlineTree* sub = _subtrees.at(i);
 661     if (sub->caller_bci() == bci && callee == sub->method()) {
 662       return sub;
 663     }
 664   }
 665   return NULL;
 666 }
 667 
 668 


< prev index next >