-
Bug
-
Resolution: Fixed
-
P2
-
16, 17
-
b14
-
ppc
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8263962 | 16.0.2 | Martin Doerr | P2 | Closed | Fixed | b01 |
We have observed assertions and crashes on PPC64 when running compiler/c2/Test6603011.java:
assert((mcall == __null) || (mcall->jvms() == __null) || (mcall->jvms()->debug_start() + mcall->_jvmadj == mcall->tf()->domain()->cnt())) failed
Or SIGSEGV in product build:
# V [libjvm.so+0x5a5bc4] OopFlow::build_oop_map(Node*, int, PhaseRegAlloc*, int*)+0x494
JDK-8257211 has introduced new clone_jvms functions which miss needs_clone_jvms() checks.
The crashes occur on PPC64, because Call nodes like MachCallDynamicJava require the ConstantTableBase as additional input edge at mach_constant_base_node_input(). The different input edge layout requires JVMS cloning which is indicated by needs_clone_jvms().
assert((mcall == __null) || (mcall->jvms() == __null) || (mcall->jvms()->debug_start() + mcall->_jvmadj == mcall->tf()->domain()->cnt())) failed
Or SIGSEGV in product build:
# V [libjvm.so+0x5a5bc4] OopFlow::build_oop_map(Node*, int, PhaseRegAlloc*, int*)+0x494
The crashes occur on PPC64, because Call nodes like MachCallDynamicJava require the ConstantTableBase as additional input edge at mach_constant_base_node_input(). The different input edge layout requires JVMS cloning which is indicated by needs_clone_jvms().
- backported by
-
JDK-8263962 C2: JVMS not cloned when needs_clone_jvms() is true
-
- Closed
-
- relates to
-
JDK-8257211 C2: Enable call devirtualization during post-parse phase
-
- Resolved
-
- links to
-
Commit openjdk/jdk16u/75ed0344
-
Commit openjdk/jdk/9c50b8e6
-
Review openjdk/jdk16u/86
-
Review openjdk/jdk/3009
(1 links to)