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
rev 10841 : 8153013: BlockingCompilation test times out
Summary: Task has no invocation count and get stale at once
Reviewed-by: kvn, iveresov, twisti


 629     return CompileBroker::queue_size(comp_level);
 630   }
 631 WB_END
 632 
 633 WB_ENTRY(jboolean, WB_TestSetForceInlineMethod(JNIEnv* env, jobject o, jobject method, jboolean value))
 634   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 635   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 636   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 637   bool result = mh->force_inline();
 638   mh->set_force_inline(value == JNI_TRUE);
 639   return result;
 640 WB_END
 641 
 642 bool WhiteBox::compile_method(Method* method, int comp_level, int bci, Thread* THREAD) {
 643   // Screen for unavailable/bad comp level or null method
 644   if (method == NULL || comp_level > TieredStopAtLevel ||
 645       CompileBroker::compiler(comp_level) == NULL) {
 646     return false;
 647   }
 648   methodHandle mh(THREAD, method);
 649   nmethod* nm = CompileBroker::compile_method(mh, bci, comp_level, mh, mh->invocation_count(), "WhiteBox", THREAD);
 650   MutexLockerEx mu(Compile_lock);
 651   return (mh->queued_for_compilation() || nm != NULL);
 652 }
 653 
 654 WB_ENTRY(jboolean, WB_EnqueueMethodForCompilation(JNIEnv* env, jobject o, jobject method, jint comp_level, jint bci))
 655   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 656   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 657   return WhiteBox::compile_method(Method::checked_resolve_jmethod_id(jmid), comp_level, bci, THREAD);
 658 WB_END
 659 
 660 WB_ENTRY(jboolean, WB_EnqueueInitializerForCompilation(JNIEnv* env, jobject o, jclass klass, jint comp_level))
 661   instanceKlassHandle ikh(java_lang_Class::as_Klass(JNIHandles::resolve(klass)));
 662   return WhiteBox::compile_method(ikh->class_initializer(), comp_level, InvocationEntryBci, THREAD);
 663 WB_END
 664 
 665 WB_ENTRY(jboolean, WB_ShouldPrintAssembly(JNIEnv* env, jobject o, jobject method, jint comp_level))
 666   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 667   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 668 
 669   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));




 629     return CompileBroker::queue_size(comp_level);
 630   }
 631 WB_END
 632 
 633 WB_ENTRY(jboolean, WB_TestSetForceInlineMethod(JNIEnv* env, jobject o, jobject method, jboolean value))
 634   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 635   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 636   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
 637   bool result = mh->force_inline();
 638   mh->set_force_inline(value == JNI_TRUE);
 639   return result;
 640 WB_END
 641 
 642 bool WhiteBox::compile_method(Method* method, int comp_level, int bci, Thread* THREAD) {
 643   // Screen for unavailable/bad comp level or null method
 644   if (method == NULL || comp_level > TieredStopAtLevel ||
 645       CompileBroker::compiler(comp_level) == NULL) {
 646     return false;
 647   }
 648   methodHandle mh(THREAD, method);
 649   nmethod* nm = CompileBroker::compile_method(mh, bci, comp_level, mh, mh->invocation_count(), CompileTask::Reason_Whitebox, THREAD);
 650   MutexLockerEx mu(Compile_lock);
 651   return (mh->queued_for_compilation() || nm != NULL);
 652 }
 653 
 654 WB_ENTRY(jboolean, WB_EnqueueMethodForCompilation(JNIEnv* env, jobject o, jobject method, jint comp_level, jint bci))
 655   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 656   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 657   return WhiteBox::compile_method(Method::checked_resolve_jmethod_id(jmid), comp_level, bci, THREAD);
 658 WB_END
 659 
 660 WB_ENTRY(jboolean, WB_EnqueueInitializerForCompilation(JNIEnv* env, jobject o, jclass klass, jint comp_level))
 661   instanceKlassHandle ikh(java_lang_Class::as_Klass(JNIHandles::resolve(klass)));
 662   return WhiteBox::compile_method(ikh->class_initializer(), comp_level, InvocationEntryBci, THREAD);
 663 WB_END
 664 
 665 WB_ENTRY(jboolean, WB_ShouldPrintAssembly(JNIEnv* env, jobject o, jobject method, jint comp_level))
 666   jmethodID jmid = reflected_method_to_jmid(thread, env, method);
 667   CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
 668 
 669   methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));


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