JDK-8371536 : C2: VerifyIterativeGVN should assert on first detected failure
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 26
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2025-11-10
  • Updated: 2025-11-10
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdUnresolved
Related Reports
Relates :  
Description
At the beginning of JDK-8347273, we had a lot of failures, and it was super helpful to report all in a large list before asserting. Currently, we only have occasional failures, and it would be better to fail immediately with an assert, and provide better info. Also, it avoids issues where we hit other failure modes because some state has become inconsistent.
Comments
JDK-8371558 is an example of a case where we hit "Need to remove from hash before changing edges" because AbsNode::Ideal unexpectedly modifies a node. That's exactly what the verification code is expected to catch but it's unfortunate, that we hit this unrelated assert. Maybe we can remove the node from the IGVN hash table before verification and add it back afterwards? JDK-8371534 is an example of a case where we hit the unrelated "must set before get" assert.
10-11-2025

I think we should also try to improve the assert message such that it contains information about the node. This would allow us to more easily identify related/similar issues.
10-11-2025