src/share/vm/opto/library_call.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/opto

src/share/vm/opto/library_call.cpp

Print this page
rev 6110 : 8007988: PrintInlining output is inconsistent with incremental inlining
Summary: fix duplicate and conflicting inlining output
Reviewed-by:


 597     tty->print_cr("Intrinsic %s", str);
 598   }
 599 #endif
 600   ciMethod* callee = kit.callee();
 601   const int bci    = kit.bci();
 602 
 603   // Try to inline the intrinsic.
 604   if (kit.try_to_inline()) {
 605     if (C->print_intrinsics() || C->print_inlining()) {
 606       C->print_inlining(callee, jvms->depth() - 1, bci, is_virtual() ? "(intrinsic, virtual)" : "(intrinsic)");
 607     }
 608     C->gather_intrinsic_statistics(intrinsic_id(), is_virtual(), Compile::_intrinsic_worked);
 609     if (C->log()) {
 610       C->log()->elem("intrinsic id='%s'%s nodes='%d'",
 611                      vmIntrinsics::name_at(intrinsic_id()),
 612                      (is_virtual() ? " virtual='1'" : ""),
 613                      C->unique() - nodes);
 614     }
 615     // Push the result from the inlined method onto the stack.
 616     kit.push_result();

 617     return kit.transfer_exceptions_into_jvms();
 618   }
 619 
 620   // The intrinsic bailed out
 621   if (C->print_intrinsics() || C->print_inlining()) {
 622     if (jvms->has_method()) {
 623       // Not a root compile.
 624       const char* msg = is_virtual() ? "failed to inline (intrinsic, virtual)" : "failed to inline (intrinsic)";
 625       C->print_inlining(callee, jvms->depth() - 1, bci, msg);
 626     } else {
 627       // Root compile
 628       tty->print("Did not generate intrinsic %s%s at bci:%d in",
 629                vmIntrinsics::name_at(intrinsic_id()),
 630                (is_virtual() ? " (virtual)" : ""), bci);
 631     }
 632   }
 633   C->gather_intrinsic_statistics(intrinsic_id(), is_virtual(), Compile::_intrinsic_failed);

 634   return NULL;
 635 }
 636 
 637 Node* LibraryIntrinsic::generate_predicate(JVMState* jvms) {
 638   LibraryCallKit kit(jvms, this);
 639   Compile* C = kit.C;
 640   int nodes = C->unique();
 641 #ifndef PRODUCT
 642   assert(is_predicted(), "sanity");
 643   if ((C->print_intrinsics() || C->print_inlining()) && Verbose) {
 644     char buf[1000];
 645     const char* str = vmIntrinsics::short_name_as_C_string(intrinsic_id(), buf, sizeof(buf));
 646     tty->print_cr("Predicate for intrinsic %s", str);
 647   }
 648 #endif
 649   ciMethod* callee = kit.callee();
 650   const int bci    = kit.bci();
 651 
 652   Node* slow_ctl = kit.try_to_predicate();
 653   if (!kit.failing()) {




 597     tty->print_cr("Intrinsic %s", str);
 598   }
 599 #endif
 600   ciMethod* callee = kit.callee();
 601   const int bci    = kit.bci();
 602 
 603   // Try to inline the intrinsic.
 604   if (kit.try_to_inline()) {
 605     if (C->print_intrinsics() || C->print_inlining()) {
 606       C->print_inlining(callee, jvms->depth() - 1, bci, is_virtual() ? "(intrinsic, virtual)" : "(intrinsic)");
 607     }
 608     C->gather_intrinsic_statistics(intrinsic_id(), is_virtual(), Compile::_intrinsic_worked);
 609     if (C->log()) {
 610       C->log()->elem("intrinsic id='%s'%s nodes='%d'",
 611                      vmIntrinsics::name_at(intrinsic_id()),
 612                      (is_virtual() ? " virtual='1'" : ""),
 613                      C->unique() - nodes);
 614     }
 615     // Push the result from the inlined method onto the stack.
 616     kit.push_result();
 617     C->print_inlining_update(this);
 618     return kit.transfer_exceptions_into_jvms();
 619   }
 620 
 621   // The intrinsic bailed out
 622   if (C->print_intrinsics() || C->print_inlining()) {
 623     if (jvms->has_method()) {
 624       // Not a root compile.
 625       const char* msg = is_virtual() ? "failed to inline (intrinsic, virtual)" : "failed to inline (intrinsic)";
 626       C->print_inlining(callee, jvms->depth() - 1, bci, msg);
 627     } else {
 628       // Root compile
 629       tty->print("Did not generate intrinsic %s%s at bci:%d in",
 630                vmIntrinsics::name_at(intrinsic_id()),
 631                (is_virtual() ? " (virtual)" : ""), bci);
 632     }
 633   }
 634   C->gather_intrinsic_statistics(intrinsic_id(), is_virtual(), Compile::_intrinsic_failed);
 635   C->print_inlining_update(this);
 636   return NULL;
 637 }
 638 
 639 Node* LibraryIntrinsic::generate_predicate(JVMState* jvms) {
 640   LibraryCallKit kit(jvms, this);
 641   Compile* C = kit.C;
 642   int nodes = C->unique();
 643 #ifndef PRODUCT
 644   assert(is_predicted(), "sanity");
 645   if ((C->print_intrinsics() || C->print_inlining()) && Verbose) {
 646     char buf[1000];
 647     const char* str = vmIntrinsics::short_name_as_C_string(intrinsic_id(), buf, sizeof(buf));
 648     tty->print_cr("Predicate for intrinsic %s", str);
 649   }
 650 #endif
 651   ciMethod* callee = kit.callee();
 652   const int bci    = kit.bci();
 653 
 654   Node* slow_ctl = kit.try_to_predicate();
 655   if (!kit.failing()) {


src/share/vm/opto/library_call.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File