< prev index next >

src/share/vm/jvmci/jvmciCompilerToVM.cpp

Print this page
rev 12631 : 8174961: [JVMCI] incorrect implementation of isCompilable


 718     MutexLocker locker(Compile_lock);
 719     ucm = Dependencies::find_unique_concrete_method(holder(), method());
 720   }
 721   oop result = CompilerToVM::get_jvmci_method(ucm, CHECK_NULL);
 722   return JNIHandles::make_local(THREAD, result);
 723 C2V_END
 724 
 725 C2V_VMENTRY(jobject, getImplementor, (JNIEnv *, jobject, jobject jvmci_type))
 726   InstanceKlass* klass = (InstanceKlass*) CompilerToVM::asKlass(jvmci_type);
 727   oop implementor = CompilerToVM::get_jvmci_type(klass->implementor(), CHECK_NULL);
 728   return JNIHandles::make_local(THREAD, implementor);
 729 C2V_END
 730 
 731 C2V_VMENTRY(jboolean, methodIsIgnoredBySecurityStackWalk,(JNIEnv *, jobject, jobject jvmci_method))
 732   methodHandle method = CompilerToVM::asMethod(jvmci_method);
 733   return method->is_ignored_by_security_stack_walk();
 734 C2V_END
 735 
 736 C2V_VMENTRY(jboolean, isCompilable,(JNIEnv *, jobject, jobject jvmci_method))
 737   methodHandle method = CompilerToVM::asMethod(jvmci_method);
 738   // Ignore the not_compilable flags in hosted mode since they are never set by
 739   // the JVMCI compiler.
 740   return UseJVMCICompiler || !method->is_not_compilable(CompLevel_full_optimization);
 741 C2V_END
 742 
 743 C2V_VMENTRY(jboolean, hasNeverInlineDirective,(JNIEnv *, jobject, jobject jvmci_method))
 744   methodHandle method = CompilerToVM::asMethod(jvmci_method);
 745   return CompilerOracle::should_not_inline(method) || method->dont_inline();
 746 C2V_END
 747 
 748 C2V_VMENTRY(jboolean, shouldInlineMethod,(JNIEnv *, jobject, jobject jvmci_method))
 749   methodHandle method = CompilerToVM::asMethod(jvmci_method);
 750   return CompilerOracle::should_inline(method) || method->force_inline();
 751 C2V_END
 752 
 753 C2V_VMENTRY(jobject, lookupType, (JNIEnv*, jobject, jstring jname, jclass accessing_class, jboolean resolve))
 754   ResourceMark rm;
 755   Handle name = JNIHandles::resolve(jname);
 756   Symbol* class_name = java_lang_String::as_symbol(name, CHECK_0);
 757   if (java_lang_String::length(name()) <= 1) {
 758     THROW_MSG_0(vmSymbols::java_lang_InternalError(), err_msg("Primitive type %s should be handled in Java code", class_name->as_C_string()));
 759   }
 760 




 718     MutexLocker locker(Compile_lock);
 719     ucm = Dependencies::find_unique_concrete_method(holder(), method());
 720   }
 721   oop result = CompilerToVM::get_jvmci_method(ucm, CHECK_NULL);
 722   return JNIHandles::make_local(THREAD, result);
 723 C2V_END
 724 
 725 C2V_VMENTRY(jobject, getImplementor, (JNIEnv *, jobject, jobject jvmci_type))
 726   InstanceKlass* klass = (InstanceKlass*) CompilerToVM::asKlass(jvmci_type);
 727   oop implementor = CompilerToVM::get_jvmci_type(klass->implementor(), CHECK_NULL);
 728   return JNIHandles::make_local(THREAD, implementor);
 729 C2V_END
 730 
 731 C2V_VMENTRY(jboolean, methodIsIgnoredBySecurityStackWalk,(JNIEnv *, jobject, jobject jvmci_method))
 732   methodHandle method = CompilerToVM::asMethod(jvmci_method);
 733   return method->is_ignored_by_security_stack_walk();
 734 C2V_END
 735 
 736 C2V_VMENTRY(jboolean, isCompilable,(JNIEnv *, jobject, jobject jvmci_method))
 737   methodHandle method = CompilerToVM::asMethod(jvmci_method);
 738   return !method->is_not_compilable(CompLevel_full_optimization);


 739 C2V_END
 740 
 741 C2V_VMENTRY(jboolean, hasNeverInlineDirective,(JNIEnv *, jobject, jobject jvmci_method))
 742   methodHandle method = CompilerToVM::asMethod(jvmci_method);
 743   return CompilerOracle::should_not_inline(method) || method->dont_inline();
 744 C2V_END
 745 
 746 C2V_VMENTRY(jboolean, shouldInlineMethod,(JNIEnv *, jobject, jobject jvmci_method))
 747   methodHandle method = CompilerToVM::asMethod(jvmci_method);
 748   return CompilerOracle::should_inline(method) || method->force_inline();
 749 C2V_END
 750 
 751 C2V_VMENTRY(jobject, lookupType, (JNIEnv*, jobject, jstring jname, jclass accessing_class, jboolean resolve))
 752   ResourceMark rm;
 753   Handle name = JNIHandles::resolve(jname);
 754   Symbol* class_name = java_lang_String::as_symbol(name, CHECK_0);
 755   if (java_lang_String::length(name()) <= 1) {
 756     THROW_MSG_0(vmSymbols::java_lang_InternalError(), err_msg("Primitive type %s should be handled in Java code", class_name->as_C_string()));
 757   }
 758 


< prev index next >