src/share/vm/runtime/compilationPolicy.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/runtime

src/share/vm/runtime/compilationPolicy.cpp

Print this page




 619     // a hot call site for method next_m?
 620     int freq = (invcnt) ? cnt/invcnt : cnt;
 621 
 622     // Check size and frequency limits
 623     if ((msg = shouldInline(m, freq, cnt)) != NULL) {
 624       break;
 625     }
 626     // Check inlining negative tests
 627     if ((msg = shouldNotInline(m)) != NULL) {
 628       break;
 629     }
 630 
 631 
 632     // If the caller method is too big or something then we do not want to
 633     // compile it just to inline a method
 634     if (!can_be_compiled(next_m, CompLevel_any)) {
 635       msg = "caller cannot be compiled";
 636       break;
 637     }
 638 
 639     if( next_m->name() == vmSymbols::class_initializer_name() ) {
 640       msg = "do not compile class initializer (OSR ok)";
 641       break;
 642     }
 643 
 644     if (TraceCompilationPolicy && Verbose) {
 645       tty->print("\n\t     check caller: ");
 646       next_m->print_short_name(tty);
 647       tty->print(" ( interpreted " INTPTR_FORMAT ", size=%d ) ", p2i((address)next_m()), next_m->code_size());
 648     }
 649 
 650     current = next;
 651   }
 652 
 653   assert( !current || !current->is_compiled(), "" );
 654 
 655   if (TraceCompilationPolicy && msg) tty->print("(%s)\n", msg);
 656 
 657   return current;
 658 }
 659 




 619     // a hot call site for method next_m?
 620     int freq = (invcnt) ? cnt/invcnt : cnt;
 621 
 622     // Check size and frequency limits
 623     if ((msg = shouldInline(m, freq, cnt)) != NULL) {
 624       break;
 625     }
 626     // Check inlining negative tests
 627     if ((msg = shouldNotInline(m)) != NULL) {
 628       break;
 629     }
 630 
 631 
 632     // If the caller method is too big or something then we do not want to
 633     // compile it just to inline a method
 634     if (!can_be_compiled(next_m, CompLevel_any)) {
 635       msg = "caller cannot be compiled";
 636       break;
 637     }
 638 
 639     if( next_m->name()->equals(vmSymbols::class_initializer_name()) ) {
 640       msg = "do not compile class initializer (OSR ok)";
 641       break;
 642     }
 643 
 644     if (TraceCompilationPolicy && Verbose) {
 645       tty->print("\n\t     check caller: ");
 646       next_m->print_short_name(tty);
 647       tty->print(" ( interpreted " INTPTR_FORMAT ", size=%d ) ", p2i((address)next_m()), next_m->code_size());
 648     }
 649 
 650     current = next;
 651   }
 652 
 653   assert( !current || !current->is_compiled(), "" );
 654 
 655   if (TraceCompilationPolicy && msg) tty->print("(%s)\n", msg);
 656 
 657   return current;
 658 }
 659 


src/share/vm/runtime/compilationPolicy.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File