524 jmethodID jmid = reflected_method_to_jmid(thread, env, method); |
524 jmethodID jmid = reflected_method_to_jmid(thread, env, method); |
525 CHECK_JNI_EXCEPTION_(env, JNI_FALSE); |
525 CHECK_JNI_EXCEPTION_(env, JNI_FALSE); |
526 MutexLockerEx mu(Compile_lock); |
526 MutexLockerEx mu(Compile_lock); |
527 methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid)); |
527 methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid)); |
528 return mh->queued_for_compilation(); |
528 return mh->queued_for_compilation(); |
|
529 WB_END |
|
530 |
|
531 WB_ENTRY(jboolean, WB_IsIntrinsicAvailable(JNIEnv* env, jobject o, jobject method, jobject compilation_context, jint compLevel)) |
|
532 if (compLevel < CompLevel_none || compLevel > CompLevel_highest_tier) { |
|
533 return false; // Intrinsic is not available on a non-existent compilation level. |
|
534 } |
|
535 jmethodID method_id, compilation_context_id; |
|
536 method_id = reflected_method_to_jmid(thread, env, method); |
|
537 CHECK_JNI_EXCEPTION_(env, JNI_FALSE); |
|
538 methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(method_id)); |
|
539 if (compilation_context != NULL) { |
|
540 compilation_context_id = reflected_method_to_jmid(thread, env, compilation_context); |
|
541 CHECK_JNI_EXCEPTION_(env, JNI_FALSE); |
|
542 methodHandle cch(THREAD, Method::checked_resolve_jmethod_id(compilation_context_id)); |
|
543 return CompileBroker::compiler(compLevel)->is_intrinsic_available(mh, cch); |
|
544 } else { |
|
545 return CompileBroker::compiler(compLevel)->is_intrinsic_available(mh, NULL); |
|
546 } |
529 WB_END |
547 WB_END |
530 |
548 |
531 WB_ENTRY(jint, WB_GetMethodCompilationLevel(JNIEnv* env, jobject o, jobject method, jboolean is_osr)) |
549 WB_ENTRY(jint, WB_GetMethodCompilationLevel(JNIEnv* env, jobject o, jobject method, jboolean is_osr)) |
532 jmethodID jmid = reflected_method_to_jmid(thread, env, method); |
550 jmethodID jmid = reflected_method_to_jmid(thread, env, method); |
533 CHECK_JNI_EXCEPTION_(env, CompLevel_none); |
551 CHECK_JNI_EXCEPTION_(env, CompLevel_none); |
1475 {CC"NMTChangeTrackingLevel", CC"()Z", (void*)&WB_NMTChangeTrackingLevel}, |
1493 {CC"NMTChangeTrackingLevel", CC"()Z", (void*)&WB_NMTChangeTrackingLevel}, |
1476 {CC"NMTGetHashSize", CC"()I", (void*)&WB_NMTGetHashSize }, |
1494 {CC"NMTGetHashSize", CC"()I", (void*)&WB_NMTGetHashSize }, |
1477 #endif // INCLUDE_NMT |
1495 #endif // INCLUDE_NMT |
1478 {CC"deoptimizeFrames", CC"(Z)I", (void*)&WB_DeoptimizeFrames }, |
1496 {CC"deoptimizeFrames", CC"(Z)I", (void*)&WB_DeoptimizeFrames }, |
1479 {CC"deoptimizeAll", CC"()V", (void*)&WB_DeoptimizeAll }, |
1497 {CC"deoptimizeAll", CC"()V", (void*)&WB_DeoptimizeAll }, |
1480 {CC"deoptimizeMethod0", CC"(Ljava/lang/reflect/Executable;Z)I", |
1498 {CC"deoptimizeMethod0", CC"(Ljava/lang/reflect/Executable;Z)I", |
1481 (void*)&WB_DeoptimizeMethod }, |
1499 (void*)&WB_DeoptimizeMethod }, |
1482 {CC"isMethodCompiled0", CC"(Ljava/lang/reflect/Executable;Z)Z", |
1500 {CC"isMethodCompiled0", CC"(Ljava/lang/reflect/Executable;Z)Z", |
1483 (void*)&WB_IsMethodCompiled }, |
1501 (void*)&WB_IsMethodCompiled }, |
1484 {CC"isMethodCompilable0", CC"(Ljava/lang/reflect/Executable;IZ)Z", |
1502 {CC"isMethodCompilable0", CC"(Ljava/lang/reflect/Executable;IZ)Z", |
1485 (void*)&WB_IsMethodCompilable}, |
1503 (void*)&WB_IsMethodCompilable}, |
1486 {CC"isMethodQueuedForCompilation0", |
1504 {CC"isMethodQueuedForCompilation0", |
1487 CC"(Ljava/lang/reflect/Executable;)Z", (void*)&WB_IsMethodQueuedForCompilation}, |
1505 CC"(Ljava/lang/reflect/Executable;)Z", (void*)&WB_IsMethodQueuedForCompilation}, |
|
1506 {CC"isIntrinsicAvailable0", |
|
1507 CC"(Ljava/lang/reflect/Executable;Ljava/lang/reflect/Executable;I)Z", |
|
1508 (void*)&WB_IsIntrinsicAvailable}, |
1488 {CC"makeMethodNotCompilable0", |
1509 {CC"makeMethodNotCompilable0", |
1489 CC"(Ljava/lang/reflect/Executable;IZ)V", (void*)&WB_MakeMethodNotCompilable}, |
1510 CC"(Ljava/lang/reflect/Executable;IZ)V", (void*)&WB_MakeMethodNotCompilable}, |
1490 {CC"testSetDontInlineMethod0", |
1511 {CC"testSetDontInlineMethod0", |
1491 CC"(Ljava/lang/reflect/Executable;Z)Z", (void*)&WB_TestSetDontInlineMethod}, |
1512 CC"(Ljava/lang/reflect/Executable;Z)Z", (void*)&WB_TestSetDontInlineMethod}, |
1492 {CC"getMethodCompilationLevel0", |
1513 {CC"getMethodCompilationLevel0", |