8344727: [JVMCI] Export the CompileBroker compilation activity mode for Truffle compiler control

Reviewed-by: dnsimon
This commit is contained in:
Volker Simonis 2024-11-29 12:30:43 +00:00
parent 8858de393a
commit 6bea1b6cf1
3 changed files with 19 additions and 0 deletions

View File

@ -3223,6 +3223,10 @@ C2V_VMENTRY(void, getOopMapAt, (JNIEnv* env, jobject, ARGUMENT_PAIR(method),
JVMCIENV->copy_longs_from((jlong*)oop_map_buf, oop_map, 0, nwords);
C2V_END
C2V_VMENTRY_0(jint, getCompilationActivityMode, (JNIEnv* env, jobject))
return CompileBroker::get_compilation_activity_mode();
}
#define CC (char*) /*cast a literal from (const char*)*/
#define FN_PTR(f) CAST_FROM_FN_PTR(void*, &(c2v_ ## f))
@ -3385,6 +3389,7 @@ JNINativeMethod CompilerToVM::methods[] = {
{CC "notifyCompilerInliningEvent", CC "(I" HS_METHOD2 HS_METHOD2 "ZLjava/lang/String;I)V", FN_PTR(notifyCompilerInliningEvent)},
{CC "getOopMapAt", CC "(" HS_METHOD2 "I[J)V", FN_PTR(getOopMapAt)},
{CC "updateCompilerThreadCanCallJava", CC "(Z)Z", FN_PTR(updateCompilerThreadCanCallJava)},
{CC "getCompilationActivityMode", CC "()I", FN_PTR(getCompilationActivityMode)},
};
int CompilerToVM::methods_count() {

View File

@ -1522,4 +1522,10 @@ final class CompilerToVM {
* @returns false if no change was made, otherwise true
*/
native boolean updateCompilerThreadCanCallJava(boolean newState);
/**
* Returns the current {@code CompileBroker} compilation activity mode which is one of:
* {@code stop_compilation = 0}, {@code run_compilation = 1} or {@code shutdown_compilation = 2}
*/
native int getCompilationActivityMode();
}

View File

@ -1488,4 +1488,12 @@ public final class HotSpotJVMCIRuntime implements JVMCIRuntime {
exitHotSpot(status);
throw JVMCIError.shouldNotReachHere();
}
/**
* Returns HotSpot's {@code CompileBroker} compilation activity mode which is one of:
* {@code stop_compilation = 0}, {@code run_compilation = 1} or {@code shutdown_compilation = 2}
*/
public int getCompilationActivityMode() {
return compilerToVm.getCompilationActivityMode();
}
}