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

src/share/vm/prims/whitebox.cpp

Print this page




 371   assert(method != NULL, "method should not be null");
 372   ThreadToNativeFromVM ttn(thread);
 373   return env->FromReflectedMethod(method);
 374 }
 375 
 376 WB_ENTRY(void, WB_DeoptimizeAll(JNIEnv* env, jobject o))
 377   MutexLockerEx mu(Compile_lock);
 378   CodeCache::mark_all_nmethods_for_deoptimization();
 379   VM_Deoptimize op;
 380   VMThread::execute(&op);
 381 WB_END
 382 
 383 WB_ENTRY(jint, WB_DeoptimizeMethod(JNIEnv* env, jobject o, jobject method, jboolean is_osr))
 384   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 385   int result = 0;
 386   CHECK_JNI_EXCEPTION_(env, result);
 387   MutexLockerEx mu(Compile_lock);
 388   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 389   nmethod* code;
 390   if (is_osr) {
 391     int bci = InvocationEntryBci;
 392     while ((code = mh->lookup_osr_nmethod_for(bci, CompLevel_none, false)) != NULL) {
 393       code->mark_for_deoptimization();
 394       ++result;
 395       bci = code->osr_entry_bci() + 1;
 396     }
 397   } else {
 398     code = mh->code();
 399   }
 400   if (code != NULL) {
 401     code->mark_for_deoptimization();
 402     ++result;
 403   }
 404   result += CodeCache::mark_for_deoptimization(mh());
 405   if (result > 0) {
 406     VM_Deoptimize op;
 407     VMThread::execute(&op);
 408   }
 409   return result;
 410 WB_END
 411 
 412 WB_ENTRY(jboolean, WB_IsMethodCompiled(JNIEnv* env, jobject o, jobject method, jboolean is_osr))
 413   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 414   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 415   MutexLockerEx mu(Compile_lock);




 371   assert(method != NULL, "method should not be null");
 372   ThreadToNativeFromVM ttn(thread);
 373   return env->FromReflectedMethod(method);
 374 }
 375 
 376 WB_ENTRY(void, WB_DeoptimizeAll(JNIEnv* env, jobject o))
 377   MutexLockerEx mu(Compile_lock);
 378   CodeCache::mark_all_nmethods_for_deoptimization();
 379   VM_Deoptimize op;
 380   VMThread::execute(&op);
 381 WB_END
 382 
 383 WB_ENTRY(jint, WB_DeoptimizeMethod(JNIEnv* env, jobject o, jobject method, jboolean is_osr))
 384   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 385   int result = 0;
 386   CHECK_JNI_EXCEPTION_(env, result);
 387   MutexLockerEx mu(Compile_lock);
 388   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 389   nmethod* code;
 390   if (is_osr) {
 391     // Mark all OSR compiled versions for deoptimization
 392     while ((code = mh->lookup_osr_nmethod_for(InvocationEntryBci, CompLevel_none, false, true)) != NULL) {
 393       code->mark_for_deoptimization();
 394       ++result;

 395     }
 396   } else {
 397     code = mh->code();
 398   }
 399   if (code != NULL) {
 400     code->mark_for_deoptimization();
 401     ++result;
 402   }
 403   result += CodeCache::mark_for_deoptimization(mh());
 404   if (result > 0) {
 405     VM_Deoptimize op;
 406     VMThread::execute(&op);
 407   }
 408   return result;
 409 WB_END
 410 
 411 WB_ENTRY(jboolean, WB_IsMethodCompiled(JNIEnv* env, jobject o, jobject method, jboolean is_osr))
 412   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 413   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 414   MutexLockerEx mu(Compile_lock);


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