src/share/vm/compiler/compileBroker.cpp

changeset 3969
1d7922586cf6
parent 3900
d2a62e0f25eb
child 4037
da91efe96a93
     1.1 --- a/src/share/vm/compiler/compileBroker.cpp	Mon Jul 23 13:04:59 2012 -0700
     1.2 +++ b/src/share/vm/compiler/compileBroker.cpp	Tue Jul 24 10:51:00 2012 -0700
     1.3 @@ -407,7 +407,10 @@
     1.4      if (is_osr_method) {
     1.5        st->print(" @ %d", osr_bci);
     1.6      }
     1.7 -    st->print(" (%d bytes)", method->code_size());
     1.8 +    if (method->is_native())
     1.9 +      st->print(" (native)");
    1.10 +    else
    1.11 +      st->print(" (%d bytes)", method->code_size());
    1.12    }
    1.13  
    1.14    if (msg != NULL) {
    1.15 @@ -427,12 +430,17 @@
    1.16    st->print("     ");        // print compilation number
    1.17  
    1.18    // method attributes
    1.19 -  const char sync_char      = method->is_synchronized()        ? 's' : ' ';
    1.20 -  const char exception_char = method->has_exception_handlers() ? '!' : ' ';
    1.21 -  const char monitors_char  = method->has_monitor_bytecodes()  ? 'm' : ' ';
    1.22 +  if (method->is_loaded()) {
    1.23 +    const char sync_char      = method->is_synchronized()        ? 's' : ' ';
    1.24 +    const char exception_char = method->has_exception_handlers() ? '!' : ' ';
    1.25 +    const char monitors_char  = method->has_monitor_bytecodes()  ? 'm' : ' ';
    1.26  
    1.27 -  // print method attributes
    1.28 -  st->print(" %c%c%c  ", sync_char, exception_char, monitors_char);
    1.29 +    // print method attributes
    1.30 +    st->print(" %c%c%c  ", sync_char, exception_char, monitors_char);
    1.31 +  } else {
    1.32 +    //         %s!bn
    1.33 +    st->print("      ");     // print method attributes
    1.34 +  }
    1.35  
    1.36    if (TieredCompilation) {
    1.37      st->print("  ");
    1.38 @@ -444,7 +452,10 @@
    1.39  
    1.40    st->print("@ %d  ", bci);  // print bci
    1.41    method->print_short_name(st);
    1.42 -  st->print(" (%d bytes)", method->code_size());
    1.43 +  if (method->is_loaded())
    1.44 +    st->print(" (%d bytes)", method->code_size());
    1.45 +  else
    1.46 +    st->print(" (not loaded)");
    1.47  
    1.48    if (msg != NULL) {
    1.49      st->print("   %s", msg);
    1.50 @@ -1018,6 +1029,7 @@
    1.51           "sanity check");
    1.52    assert(!instanceKlass::cast(method->method_holder())->is_not_initialized(),
    1.53           "method holder must be initialized");
    1.54 +  assert(!method->is_method_handle_intrinsic(), "do not enqueue these guys");
    1.55  
    1.56    if (CIPrintRequests) {
    1.57      tty->print("request: ");
    1.58 @@ -1231,7 +1243,7 @@
    1.59    //
    1.60    // Note: A native method implies non-osr compilation which is
    1.61    //       checked with an assertion at the entry of this method.
    1.62 -  if (method->is_native()) {
    1.63 +  if (method->is_native() && !method->is_method_handle_intrinsic()) {
    1.64      bool in_base_library;
    1.65      address adr = NativeLookup::lookup(method, in_base_library, THREAD);
    1.66      if (HAS_PENDING_EXCEPTION) {
    1.67 @@ -1264,7 +1276,7 @@
    1.68  
    1.69    // do the compilation
    1.70    if (method->is_native()) {
    1.71 -    if (!PreferInterpreterNativeStubs) {
    1.72 +    if (!PreferInterpreterNativeStubs || method->is_method_handle_intrinsic()) {
    1.73        // Acquire our lock.
    1.74        int compile_id;
    1.75        {

mercurial