894 if ((!is_blocking && is_queued) || nm != NULL) {
895 return true;
896 }
897 tty->print("WB error: failed to %s compile at level %d method ", is_blocking ? "blocking" : "", comp_level);
898 mh->print_short_name(tty);
899 tty->cr();
900 if (is_blocking && is_queued) {
901 tty->print_cr("WB error: blocking compilation is still in queue!");
902 }
903 return false;
904 }
905
906 WB_ENTRY(jboolean, WB_EnqueueMethodForCompilation(JNIEnv* env, jobject o, jobject method, jint comp_level, jint bci))
907 jmethodID jmid = reflected_method_to_jmid(thread, env, method);
908 CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
909 return WhiteBox::compile_method(Method::checked_resolve_jmethod_id(jmid), comp_level, bci, THREAD);
910 WB_END
911
912 WB_ENTRY(jboolean, WB_EnqueueInitializerForCompilation(JNIEnv* env, jobject o, jclass klass, jint comp_level))
913 InstanceKlass* ik = InstanceKlass::cast(java_lang_Class::as_Klass(JNIHandles::resolve(klass)));
914 return WhiteBox::compile_method(ik->class_initializer(), comp_level, InvocationEntryBci, THREAD);
915 WB_END
916
917 WB_ENTRY(jboolean, WB_ShouldPrintAssembly(JNIEnv* env, jobject o, jobject method, jint comp_level))
918 jmethodID jmid = reflected_method_to_jmid(thread, env, method);
919 CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
920
921 methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
922 DirectiveSet* directive = DirectivesStack::getMatchingDirective(mh, CompileBroker::compiler(comp_level));
923 bool result = directive->PrintAssemblyOption;
924 DirectivesStack::release(directive);
925
926 return result;
927 WB_END
928
929 WB_ENTRY(jint, WB_MatchesInline(JNIEnv* env, jobject o, jobject method, jstring pattern))
930 jmethodID jmid = reflected_method_to_jmid(thread, env, method);
931 CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
932
933 methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
934
|
894 if ((!is_blocking && is_queued) || nm != NULL) {
895 return true;
896 }
897 tty->print("WB error: failed to %s compile at level %d method ", is_blocking ? "blocking" : "", comp_level);
898 mh->print_short_name(tty);
899 tty->cr();
900 if (is_blocking && is_queued) {
901 tty->print_cr("WB error: blocking compilation is still in queue!");
902 }
903 return false;
904 }
905
906 WB_ENTRY(jboolean, WB_EnqueueMethodForCompilation(JNIEnv* env, jobject o, jobject method, jint comp_level, jint bci))
907 jmethodID jmid = reflected_method_to_jmid(thread, env, method);
908 CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
909 return WhiteBox::compile_method(Method::checked_resolve_jmethod_id(jmid), comp_level, bci, THREAD);
910 WB_END
911
912 WB_ENTRY(jboolean, WB_EnqueueInitializerForCompilation(JNIEnv* env, jobject o, jclass klass, jint comp_level))
913 InstanceKlass* ik = InstanceKlass::cast(java_lang_Class::as_Klass(JNIHandles::resolve(klass)));
914 Method* clinit = ik->class_initializer();
915 if (clinit == NULL) {
916 return false;
917 }
918 return WhiteBox::compile_method(clinit, comp_level, InvocationEntryBci, THREAD);
919 WB_END
920
921 WB_ENTRY(jboolean, WB_ShouldPrintAssembly(JNIEnv* env, jobject o, jobject method, jint comp_level))
922 jmethodID jmid = reflected_method_to_jmid(thread, env, method);
923 CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
924
925 methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
926 DirectiveSet* directive = DirectivesStack::getMatchingDirective(mh, CompileBroker::compiler(comp_level));
927 bool result = directive->PrintAssemblyOption;
928 DirectivesStack::release(directive);
929
930 return result;
931 WB_END
932
933 WB_ENTRY(jint, WB_MatchesInline(JNIEnv* env, jobject o, jobject method, jstring pattern))
934 jmethodID jmid = reflected_method_to_jmid(thread, env, method);
935 CHECK_JNI_EXCEPTION_(env, JNI_FALSE);
936
937 methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid));
938
|