Mercurial > hg > graal-jvmci-8
comparison src/share/vm/jvmci/jvmciCompilerToVM.cpp @ 23992:1b8892b4ce9c
lazily cache the name of a HotSpotResolvedJavaMethodImpl
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Tue, 31 Jan 2017 16:44:20 +0100 |
parents | 115d4e0d7b87 |
children | ebce30b702eb |
comparison
equal
deleted
inserted
replaced
23991:4913d70f630b | 23992:1b8892b4ce9c |
---|---|
1120 } | 1120 } |
1121 Handle name = java_lang_String::create_from_symbol(klass->field_name(index), CHECK_NULL); | 1121 Handle name = java_lang_String::create_from_symbol(klass->field_name(index), CHECK_NULL); |
1122 return JNIHandles::make_local(THREAD, name()); | 1122 return JNIHandles::make_local(THREAD, name()); |
1123 C2V_END | 1123 C2V_END |
1124 | 1124 |
1125 C2V_VMENTRY(jobject, getMethodName, (JNIEnv*, jobject, jobject jvmci_method)) | |
1126 Method* method = CompilerToVM::asMethod(jvmci_method); | |
1127 Handle name = java_lang_String::create_from_symbol(method->name(), CHECK_NULL); | |
1128 return JNIHandles::make_local(THREAD, name()); | |
1129 C2V_END | |
1130 | |
1125 bool matches(jobjectArray methods, Method* method) { | 1131 bool matches(jobjectArray methods, Method* method) { |
1126 objArrayOop methods_oop = (objArrayOop) JNIHandles::resolve(methods); | 1132 objArrayOop methods_oop = (objArrayOop) JNIHandles::resolve(methods); |
1127 | 1133 |
1128 for (int i = 0; i < methods_oop->length(); i++) { | 1134 for (int i = 0; i < methods_oop->length(); i++) { |
1129 oop resolved = methods_oop->obj_at(i); | 1135 oop resolved = methods_oop->obj_at(i); |
1527 {CC"findUniqueConcreteMethod", CC"("HS_RESOLVED_KLASS HS_RESOLVED_METHOD")"HS_RESOLVED_METHOD, FN_PTR(findUniqueConcreteMethod)}, | 1533 {CC"findUniqueConcreteMethod", CC"("HS_RESOLVED_KLASS HS_RESOLVED_METHOD")"HS_RESOLVED_METHOD, FN_PTR(findUniqueConcreteMethod)}, |
1528 {CC"getImplementor", CC"("HS_RESOLVED_KLASS")"HS_RESOLVED_KLASS, FN_PTR(getImplementor)}, | 1534 {CC"getImplementor", CC"("HS_RESOLVED_KLASS")"HS_RESOLVED_KLASS, FN_PTR(getImplementor)}, |
1529 {CC"getStackTraceElement", CC"("HS_RESOLVED_METHOD"I)"STACK_TRACE_ELEMENT, FN_PTR(getStackTraceElement)}, | 1535 {CC"getStackTraceElement", CC"("HS_RESOLVED_METHOD"I)"STACK_TRACE_ELEMENT, FN_PTR(getStackTraceElement)}, |
1530 {CC"methodIsIgnoredBySecurityStackWalk", CC"("HS_RESOLVED_METHOD")Z", FN_PTR(methodIsIgnoredBySecurityStackWalk)}, | 1536 {CC"methodIsIgnoredBySecurityStackWalk", CC"("HS_RESOLVED_METHOD")Z", FN_PTR(methodIsIgnoredBySecurityStackWalk)}, |
1531 {CC"doNotInlineOrCompile", CC"("HS_RESOLVED_METHOD")V", FN_PTR(doNotInlineOrCompile)}, | 1537 {CC"doNotInlineOrCompile", CC"("HS_RESOLVED_METHOD")V", FN_PTR(doNotInlineOrCompile)}, |
1532 {CC"isCompilable", CC"(" HS_RESOLVED_METHOD ")Z", FN_PTR(isCompilable)}, | 1538 {CC"isCompilable", CC"("HS_RESOLVED_METHOD")Z", FN_PTR(isCompilable)}, |
1533 {CC"hasNeverInlineDirective", CC"(" HS_RESOLVED_METHOD ")Z", FN_PTR(hasNeverInlineDirective)}, | 1539 {CC"hasNeverInlineDirective", CC"("HS_RESOLVED_METHOD")Z", FN_PTR(hasNeverInlineDirective)}, |
1534 {CC"shouldInlineMethod", CC"("HS_RESOLVED_METHOD")Z", FN_PTR(shouldInlineMethod)}, | 1540 {CC"shouldInlineMethod", CC"("HS_RESOLVED_METHOD")Z", FN_PTR(shouldInlineMethod)}, |
1535 {CC"lookupType", CC"("STRING CLASS"Z)"HS_RESOLVED_KLASS, FN_PTR(lookupType)}, | 1541 {CC"lookupType", CC"("STRING CLASS"Z)"HS_RESOLVED_KLASS, FN_PTR(lookupType)}, |
1536 {CC"lookupNameInPool", CC"("HS_CONSTANT_POOL"I)"STRING, FN_PTR(lookupNameInPool)}, | 1542 {CC"lookupNameInPool", CC"("HS_CONSTANT_POOL"I)"STRING, FN_PTR(lookupNameInPool)}, |
1537 {CC"lookupNameAndTypeRefIndexInPool", CC"("HS_CONSTANT_POOL"I)I", FN_PTR(lookupNameAndTypeRefIndexInPool)}, | 1543 {CC"lookupNameAndTypeRefIndexInPool", CC"("HS_CONSTANT_POOL"I)I", FN_PTR(lookupNameAndTypeRefIndexInPool)}, |
1538 {CC"lookupSignatureInPool", CC"("HS_CONSTANT_POOL"I)"STRING, FN_PTR(lookupSignatureInPool)}, | 1544 {CC"lookupSignatureInPool", CC"("HS_CONSTANT_POOL"I)"STRING, FN_PTR(lookupSignatureInPool)}, |
1546 {CC"resolveTypeInPool", CC"("HS_CONSTANT_POOL"I)"HS_RESOLVED_KLASS, FN_PTR(resolveTypeInPool)}, | 1552 {CC"resolveTypeInPool", CC"("HS_CONSTANT_POOL"I)"HS_RESOLVED_KLASS, FN_PTR(resolveTypeInPool)}, |
1547 {CC"resolveFieldInPool", CC"("HS_CONSTANT_POOL"IB[I)"HS_RESOLVED_KLASS, FN_PTR(resolveFieldInPool)}, | 1553 {CC"resolveFieldInPool", CC"("HS_CONSTANT_POOL"IB[I)"HS_RESOLVED_KLASS, FN_PTR(resolveFieldInPool)}, |
1548 {CC"resolveInvokeDynamicInPool", CC"("HS_CONSTANT_POOL"I)V", FN_PTR(resolveInvokeDynamicInPool)}, | 1554 {CC"resolveInvokeDynamicInPool", CC"("HS_CONSTANT_POOL"I)V", FN_PTR(resolveInvokeDynamicInPool)}, |
1549 {CC"resolveInvokeHandleInPool", CC"("HS_CONSTANT_POOL"I)V", FN_PTR(resolveInvokeHandleInPool)}, | 1555 {CC"resolveInvokeHandleInPool", CC"("HS_CONSTANT_POOL"I)V", FN_PTR(resolveInvokeHandleInPool)}, |
1550 {CC"resolveMethod", CC"("HS_RESOLVED_KLASS HS_RESOLVED_METHOD HS_RESOLVED_KLASS")"HS_RESOLVED_METHOD, FN_PTR(resolveMethod)}, | 1556 {CC"resolveMethod", CC"("HS_RESOLVED_KLASS HS_RESOLVED_METHOD HS_RESOLVED_KLASS")"HS_RESOLVED_METHOD, FN_PTR(resolveMethod)}, |
1551 {CC "getSignaturePolymorphicHolders", CC "()[" STRING, FN_PTR(getSignaturePolymorphicHolders)}, | 1557 {CC"getSignaturePolymorphicHolders", CC"()[" STRING, FN_PTR(getSignaturePolymorphicHolders)}, |
1552 {CC"getVtableIndexForInterfaceMethod", CC"("HS_RESOLVED_KLASS HS_RESOLVED_METHOD")I", FN_PTR(getVtableIndexForInterfaceMethod)}, | 1558 {CC"getVtableIndexForInterfaceMethod", CC"("HS_RESOLVED_KLASS HS_RESOLVED_METHOD")I", FN_PTR(getVtableIndexForInterfaceMethod)}, |
1553 {CC"getClassInitializer", CC"("HS_RESOLVED_KLASS")"HS_RESOLVED_METHOD, FN_PTR(getClassInitializer)}, | 1559 {CC"getClassInitializer", CC"("HS_RESOLVED_KLASS")"HS_RESOLVED_METHOD, FN_PTR(getClassInitializer)}, |
1554 {CC"hasFinalizableSubclass", CC"("HS_RESOLVED_KLASS")Z", FN_PTR(hasFinalizableSubclass)}, | 1560 {CC"hasFinalizableSubclass", CC"("HS_RESOLVED_KLASS")Z", FN_PTR(hasFinalizableSubclass)}, |
1555 {CC"getMaxCallTargetOffset", CC"(J)J", FN_PTR(getMaxCallTargetOffset)}, | 1561 {CC"getMaxCallTargetOffset", CC"(J)J", FN_PTR(getMaxCallTargetOffset)}, |
1556 {CC"asResolvedJavaMethod", CC "(" EXECUTABLE ")" HS_RESOLVED_METHOD, FN_PTR(asResolvedJavaMethod)}, | 1562 {CC"asResolvedJavaMethod", CC"(" EXECUTABLE ")" HS_RESOLVED_METHOD, FN_PTR(asResolvedJavaMethod)}, |
1557 {CC"getResolvedJavaMethod", CC"(Ljava/lang/Object;J)"HS_RESOLVED_METHOD, FN_PTR(getResolvedJavaMethod)}, | 1563 {CC"getResolvedJavaMethod", CC"(Ljava/lang/Object;J)"HS_RESOLVED_METHOD, FN_PTR(getResolvedJavaMethod)}, |
1558 {CC"getConstantPool", CC"(Ljava/lang/Object;)"HS_CONSTANT_POOL, FN_PTR(getConstantPool)}, | 1564 {CC"getConstantPool", CC"(Ljava/lang/Object;)"HS_CONSTANT_POOL, FN_PTR(getConstantPool)}, |
1559 {CC"getResolvedJavaType", CC"(Ljava/lang/Object;JZ)"HS_RESOLVED_KLASS, FN_PTR(getResolvedJavaType)}, | 1565 {CC"getResolvedJavaType", CC"(Ljava/lang/Object;JZ)"HS_RESOLVED_KLASS, FN_PTR(getResolvedJavaType)}, |
1560 {CC"readConfiguration", CC"()[Ljava/lang/Object;", FN_PTR(readConfiguration)}, | 1566 {CC"readConfiguration", CC"()[Ljava/lang/Object;", FN_PTR(readConfiguration)}, |
1561 {CC"installCode", CC"("TARGET_DESCRIPTION HS_COMPILED_CODE INSTALLED_CODE HS_SPECULATION_LOG")I", FN_PTR(installCode)}, | 1567 {CC"installCode", CC"("TARGET_DESCRIPTION HS_COMPILED_CODE INSTALLED_CODE HS_SPECULATION_LOG")I", FN_PTR(installCode)}, |
1572 {CC"allocateCompileId", CC"("HS_RESOLVED_METHOD"I)I", FN_PTR(allocateCompileId)}, | 1578 {CC"allocateCompileId", CC"("HS_RESOLVED_METHOD"I)I", FN_PTR(allocateCompileId)}, |
1573 {CC"isMature", CC"("METASPACE_METHOD_DATA")Z", FN_PTR(isMature)}, | 1579 {CC"isMature", CC"("METASPACE_METHOD_DATA")Z", FN_PTR(isMature)}, |
1574 {CC"hasCompiledCodeForOSR", CC"("HS_RESOLVED_METHOD"II)Z", FN_PTR(hasCompiledCodeForOSR)}, | 1580 {CC"hasCompiledCodeForOSR", CC"("HS_RESOLVED_METHOD"II)Z", FN_PTR(hasCompiledCodeForOSR)}, |
1575 {CC"getSymbol", CC"(J)"STRING, FN_PTR(getSymbol)}, | 1581 {CC"getSymbol", CC"(J)"STRING, FN_PTR(getSymbol)}, |
1576 {CC"getFieldName", CC"("HS_RESOLVED_KLASS"I)"STRING, FN_PTR(getFieldName)}, | 1582 {CC"getFieldName", CC"("HS_RESOLVED_KLASS"I)"STRING, FN_PTR(getFieldName)}, |
1583 {CC"getMethodName", CC"("HS_RESOLVED_METHOD")"STRING, FN_PTR(getMethodName)}, | |
1577 {CC"getNextStackFrame", CC"("HS_STACK_FRAME_REF "["RESOLVED_METHOD"I)"HS_STACK_FRAME_REF, FN_PTR(getNextStackFrame)}, | 1584 {CC"getNextStackFrame", CC"("HS_STACK_FRAME_REF "["RESOLVED_METHOD"I)"HS_STACK_FRAME_REF, FN_PTR(getNextStackFrame)}, |
1578 {CC"materializeVirtualObjects", CC"("HS_STACK_FRAME_REF"Z)V", FN_PTR(materializeVirtualObjects)}, | 1585 {CC"materializeVirtualObjects", CC"("HS_STACK_FRAME_REF"Z)V", FN_PTR(materializeVirtualObjects)}, |
1579 {CC"shouldDebugNonSafepoints", CC"()Z", FN_PTR(shouldDebugNonSafepoints)}, | 1586 {CC"shouldDebugNonSafepoints", CC"()Z", FN_PTR(shouldDebugNonSafepoints)}, |
1580 {CC"writeDebugOutput", CC"([BII)V", FN_PTR(writeDebugOutput)}, | 1587 {CC"writeDebugOutput", CC"([BII)V", FN_PTR(writeDebugOutput)}, |
1581 {CC"flushDebugOutput", CC"()V", FN_PTR(flushDebugOutput)}, | 1588 {CC"flushDebugOutput", CC"()V", FN_PTR(flushDebugOutput)}, |
1582 {CC"methodDataProfileDataSize", CC"(JI)I", FN_PTR(methodDataProfileDataSize)}, | 1589 {CC"methodDataProfileDataSize", CC"(JI)I", FN_PTR(methodDataProfileDataSize)}, |
1583 {CC"interpreterFrameSize", CC"("BYTECODE_FRAME")I", FN_PTR(interpreterFrameSize)}, | 1590 {CC"interpreterFrameSize", CC"("BYTECODE_FRAME")I", FN_PTR(interpreterFrameSize)}, |
1584 {CC"compileToBytecode", CC "(" OBJECT ")V", FN_PTR(compileToBytecode)}, | 1591 {CC"compileToBytecode", CC"(" OBJECT ")V", FN_PTR(compileToBytecode)}, |
1585 }; | 1592 }; |
1586 | 1593 |
1587 int CompilerToVM::methods_count() { | 1594 int CompilerToVM::methods_count() { |
1588 return sizeof(methods) / sizeof(JNINativeMethod); | 1595 return sizeof(methods) / sizeof(JNINativeMethod); |
1589 } | 1596 } |