JDK-8333876 : C2 SuperWord: regression after JDK-8325155: failed: internal connection
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 24
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2024-06-10
  • Updated: 2024-06-18
  • Resolved: 2024-06-18
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 24
24 masterFixed
Related Reports
Relates :  
Relates :  
Description
[~roland] Reported a CTW failure, and I extracted it from the JAR / Classfile and created a JAVA reproducer.

/oracle-work/jdk-fork2/build/linux-x64-debug/jdk/bin/java -XX:CompileCommand=compileonly,Test*::* -XX:CompileCommand=printcompilation,Test*::* -XX:CompileCommand=TraceAutoVectorization,*::*,PRECONDITIONS,BODY,SW_REJECTIONS,POINTERS,SW_PACKSET -XX:+TraceNewVectors -Xbatch -XX:+TraceLoopOpts TestY.java

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/oracle-work/jdk-fork2/open/src/hotspot/share/opto/superword.cpp:2781), pid=2060738, tid=2060752
#  assert(u_pk->at(i - 1) == u_pk->at(i)->in(1)) failed: internal connection
#
# JRE version: Java(TM) SE Runtime Environment (24.0) (fastdebug build 24-internal-2024-06-07-0517446.emanuel...)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 24-internal-2024-06-07-0517446.emanuel..., mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0x172f86f]  SuperWord::is_vector_use(Node*, int) const+0x29f
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /oracle-work/jdk-fork2/build/linux-x64-debug/jdk/bin/core.2060738)
#
# An error report file with more information is saved as:
# /oracle-work/jdk-fork2/build/linux-x64-debug/jdk/bin/hs_err_pid2060738.log
#
# Compiler replay data is saved as:
# /oracle-work/jdk-fork2/build/linux-x64-debug/jdk/bin/replay_pid2060738.log
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
#

The reason seems to be confusion around parallel reductions. I only expected packing inside a reduction. If they are packed across reductions that triggers the assert.
Comments
Changeset: e965d70a Author: Emanuel Peter <epeter@openjdk.org> Date: 2024-06-18 16:15:09 +0000 URL: https://git.openjdk.org/jdk/commit/e965d70a7425bec78620a2ca8bfaca3c392edf6a
18-06-2024

A pull request was submitted for review. URL: https://git.openjdk.org/jdk/pull/19736 Date: 2024-06-16 07:25:32 +0000
16-06-2024

ILW = Assertion failure in Superword, rare?, disable compilation or use -XX:-UseSuperWord = HLM = P3
10-06-2024