The vmTestbase/nsk/jdi/StackFrame/getArgumentValues/getArgumentValues002/getArgumentValues002.java test fails on Graal due to a problem in the way Graal initializes the frame state for an OSR compilation.
Currently, Graal uses its internal analysis to clear non-live local variables at the OSR entry point. However, this can be too conservative, marking variables as live which are actually dead from the interpreter's point of view. For example, a local variable that is assigned an int down one path and an object down another can look live according to the compiler's analysis but is clearly dead from the interpreters point of view.
To fix this, Graal needs to do something like ciMethod::live_local_oops_at_bci which entails the need for new JVMCI API to access OopMapCache::compute_one_oop_map.
Currently, Graal uses its internal analysis to clear non-live local variables at the OSR entry point. However, this can be too conservative, marking variables as live which are actually dead from the interpreter's point of view. For example, a local variable that is assigned an int down one path and an object down another can look live according to the compiler's analysis but is clearly dead from the interpreters point of view.
To fix this, Graal needs to do something like ciMethod::live_local_oops_at_bci which entails the need for new JVMCI API to access OopMapCache::compute_one_oop_map.
- relates to
-
JDK-8236650 [Graal] vmTestbase/nsk/jdi/StackFrame/getArgumentValues/getArgumentValues002/getArgumentValues002.java failed with "Unexpected JDWP Error: 35"
-
- Open
-
- links to
-
Commit openjdk/jdk/542b3000
-
Review(master) openjdk/jdk/15705