C1 can't deal with illegal Phi functions which propagate into other Phi functions.
Phi functions get illegal when their inputs have different types.
This was observed when we activated the JVMTI capability can_access_local_variables and restored the old behavior of BlockBegin::try_merge: invalidate the phi functions instead of bailing out.
The function LIRGenerator::move_to_phi crashes in this case.
Proposed fix is to bail out as this case happens extremely rarely. Seems like it was never observed with the new behavior of BlockBegin::try_merge.
Phi functions get illegal when their inputs have different types.
This was observed when we activated the JVMTI capability can_access_local_variables and restored the old behavior of BlockBegin::try_merge: invalidate the phi functions instead of bailing out.
The function LIRGenerator::move_to_phi crashes in this case.
Proposed fix is to bail out as this case happens extremely rarely. Seems like it was never observed with the new behavior of BlockBegin::try_merge.
- relates to
-
JDK-8299658 C1 compilation crashes in LinearScan::resolve_exception_edge
-
- Resolved
-