-
Bug
-
Resolution: Fixed
-
P3
-
24
-
b03
[~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.
/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.
- relates to
-
JDK-8334228 C2 SuperWord: fix JDK-24 regression in VPointer::cmp_for_sort after JDK-8325155
-
- Resolved
-
-
JDK-8325155 C2 SuperWord: remove alignment boundaries
-
- Resolved
-