< prev index next >

src/hotspot/share/prims/whitebox.cpp

Print this page
rev 56098 : imported patch 8226705-8221734-baseline


 803             if (_make_not_entrant) {
 804                 CompiledMethod* cm = CodeCache::find_compiled(f->pc());
 805                 assert(cm != NULL, "sanity check");
 806                 cm->make_not_entrant();
 807             }
 808             ++_result;
 809           }
 810         }
 811       }
 812     }
 813   }
 814 };
 815 
 816 WB_ENTRY(jint, WB_DeoptimizeFrames(JNIEnv* env, jobject o, jboolean make_not_entrant))
 817   VM_WhiteBoxDeoptimizeFrames op(make_not_entrant == JNI_TRUE);
 818   VMThread::execute(&op);
 819   return op.result();
 820 WB_END
 821 
 822 WB_ENTRY(void, WB_DeoptimizeAll(JNIEnv* env, jobject o))
 823   MutexLocker mu(Compile_lock);
 824   CodeCache::mark_all_nmethods_for_deoptimization();
 825   VM_Deoptimize op;
 826   VMThread::execute(&op);
 827 WB_END
 828 
 829 WB_ENTRY(jint, WB_DeoptimizeMethod(JNIEnv* env, jobject o, jobject method, jboolean is_osr))
 830   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 831   int result = 0;
 832   CHECK_JNI_EXCEPTION_(env, result);
 833   MutexLocker mu(Compile_lock);
 834   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 835   if (is_osr) {
 836     result += mh->mark_osr_nmethods();
 837   } else if (mh->code() != NULL) {
 838     mh->code()->mark_for_deoptimization();
 839     ++result;
 840   }
 841   result += CodeCache::mark_for_deoptimization(mh());
 842   if (result > 0) {
 843     VM_Deoptimize op;
 844     VMThread::execute(&op);
 845   }
 846   return result;
 847 WB_END
 848 
 849 WB_ENTRY(jboolean, WB_IsMethodCompiled(JNIEnv* env, jobject o, jobject method, jboolean is_osr))
 850   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 851   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 852   MutexLocker mu(Compile_lock);
 853   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 854   CompiledMethod* code = is_osr ? mh->lookup_osr_nmethod_for(InvocationEntryBci, CompLevel_none, false) : mh->code();
 855   if (code == NULL) {
 856     return JNI_FALSE;
 857   }
 858   return (code->is_alive() && !code->is_marked_for_deoptimization());
 859 WB_END
 860 
 861 WB_ENTRY(jboolean, WB_IsMethodCompilable(JNIEnv* env, jobject o, jobject method, jint comp_level, jboolean is_osr))
 862   if (method == NULL || comp_level > MIN2((CompLevel) TieredStopAtLevel, CompLevel_highest_tier)) {
 863     return false;
 864   }




 803             if (_make_not_entrant) {
 804                 CompiledMethod* cm = CodeCache::find_compiled(f->pc());
 805                 assert(cm != NULL, "sanity check");
 806                 cm->make_not_entrant();
 807             }
 808             ++_result;
 809           }
 810         }
 811       }
 812     }
 813   }
 814 };
 815 
 816 WB_ENTRY(jint, WB_DeoptimizeFrames(JNIEnv* env, jobject o, jboolean make_not_entrant))
 817   VM_WhiteBoxDeoptimizeFrames op(make_not_entrant == JNI_TRUE);
 818   VMThread::execute(&op);
 819   return op.result();
 820 WB_END
 821 
 822 WB_ENTRY(void, WB_DeoptimizeAll(JNIEnv* env, jobject o))

 823   CodeCache::mark_all_nmethods_for_deoptimization();
 824   Deoptimization::deoptimize_all_marked();

 825 WB_END
 826 
 827 WB_ENTRY(jint, WB_DeoptimizeMethod(JNIEnv* env, jobject o, jobject method, jboolean is_osr))
 828   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 829   int result = 0;
 830   CHECK_JNI_EXCEPTION_(env, result);
 831   MutexLocker mu(Compile_lock);
 832   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 833   if (is_osr) {
 834     result += mh->mark_osr_nmethods();
 835   } else if (mh->code() != NULL) {
 836     mh->code()->mark_for_deoptimization();
 837     ++result;
 838   }
 839   result += CodeCache::mark_for_deoptimization(mh());
 840   if (result > 0) {
 841     Deoptimization::deoptimize_all_marked();

 842   }
 843   return result;
 844 WB_END
 845 
 846 WB_ENTRY(jboolean, WB_IsMethodCompiled(JNIEnv* env, jobject o, jobject method, jboolean is_osr))
 847   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 848   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 849   MutexLocker mu(Compile_lock);
 850   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 851   CompiledMethod* code = is_osr ? mh->lookup_osr_nmethod_for(InvocationEntryBci, CompLevel_none, false) : mh->code();
 852   if (code == NULL) {
 853     return JNI_FALSE;
 854   }
 855   return (code->is_alive() && !code->is_marked_for_deoptimization());
 856 WB_END
 857 
 858 WB_ENTRY(jboolean, WB_IsMethodCompilable(JNIEnv* env, jobject o, jobject method, jint comp_level, jboolean is_osr))
 859   if (method == NULL || comp_level > MIN2((CompLevel) TieredStopAtLevel, CompLevel_highest_tier)) {
 860     return false;
 861   }


< prev index next >