JDK-8308917 : C2 SuperWord::output: assert before bailout with CountedLoopReserveKit
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 21
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2023-05-26
  • Updated: 2023-06-05
  • Resolved: 2023-05-31
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.
JDK 21
21 b25Fixed
Related Reports
Relates :  
Relates :  
Description
In SuperWord::output we create a CountedLoopReserveKit, so that we can reverse edits to the loop, in case something goes wrong. As far as I understand all of these conditions should never occur. We should at least add asserts so that we can catch such failures and fix them. We can later decide if it makes sense to clone the whole loop via CountedLoopReserveKit (the loops can be large!), or if we should just have a regular compilation bailout instead (could simplify the code and reduce overhead of loop cloning).

Plus: it seems the checks and bailouts are very selectively applied. I don't see why we would nullptr check some "vector_opd" but not all of them.
Comments
Changeset: 25b98030 Author: Emanuel Peter <epeter@openjdk.org> Date: 2023-05-31 13:17:45 +0000 URL: https://git.openjdk.org/jdk/commit/25b98030569d863e605f398d5f97211008c58ca3
31-05-2023

A pull request was submitted for review. URL: https://git.openjdk.org/jdk/pull/14168 Date: 2023-05-26 04:43:20 +0000
26-05-2023