-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
P3
-
Affects Version/s: 26
-
Component/s: hotspot
Found by Olivier Mattmann <olivier.mattmann@bluewin.ch> during work on this Master thesis where he is working on a fuzzer for C2.
The attached test case asserts during vectorization. The reproducer was derived from compiler/ccp/TestRemoveUnreachableCCP.java.
Build search determined that the first failing commit is fromJDK-8367389.
java-fastdebug -Xbatch -XX:-TieredCompilation -XX:CompileCommand=compileonly,Test.test Test.java
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/jdk/src/hotspot/share/opto/vectorization.cpp:231), pid=352409, tid=352424
# assert(_inputs.at(alias_idx) == nullptr || _inputs.at(alias_idx) == load->in(1)) failed: not yet touched or the same input
#
# JRE version: Java(TM) SE Runtime Environment (27.0) (fastdebug build 27-internal.open)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 27-internal.open, mixed mode, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x1c48db8] VLoopMemorySlices::find_memory_slices()+0x258
Current CompileTask:
C2:1829 102 % b Test::test @ 72 (106 bytes)
Stack: [0x00007f9b3850f000,0x00007f9b3860f000], sp=0x00007f9b386095c0, free space=1001k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x1c48db8] VLoopMemorySlices::find_memory_slices()+0x258 (vectorization.cpp:231)
V [libjvm.so+0x1c51144] VLoopAnalyzer::setup_submodules_helper()+0x74 (vectorization.cpp:190)
V [libjvm.so+0x1c511d4] VLoopAnalyzer::setup_submodules()+0x44 (vectorization.cpp:163)
V [libjvm.so+0x15dcc16] PhaseIdealLoop::auto_vectorize(IdealLoopTree*, VSharedData&)+0x9e6 (vectorization.hpp:864)
V [libjvm.so+0x15bb463] PhaseIdealLoop::build_and_optimize()+0xf13 (loopnode.cpp:5332)
V [libjvm.so+0xbb4ef0] PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x4c0 (loopnode.hpp:1233)
V [libjvm.so+0xbabe61] Compile::optimize_loops(PhaseIterGVN&, LoopOptsMode)+0xb1 (compile.cpp:2266)
V [libjvm.so+0xbaed8f] Compile::Optimize()+0xcbf (compile.cpp:2515)
V [libjvm.so+0xbb1f33] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x2023 (compile.cpp:860)
V [libjvm.so+0x9cc6e8] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x498 (c2compiler.cpp:147)
V [libjvm.so+0xbc1420] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x780 (compileBroker.cpp:2345)
V [libjvm.so+0xbc2c80] CompileBroker::compiler_thread_loop()+0x530 (compileBroker.cpp:1989)
V [libjvm.so+0x1124d7b] JavaThread::thread_main_inner()+0x13b (javaThread.cpp:776)
V [libjvm.so+0x1ba9036] Thread::call_run()+0xb6 (thread.cpp:242)
V [libjvm.so+0x17fe7d8] thread_native_entry(Thread*)+0x118 (os_linux.cpp:860)
The attached test case asserts during vectorization. The reproducer was derived from compiler/ccp/TestRemoveUnreachableCCP.java.
Build search determined that the first failing commit is from
java-fastdebug -Xbatch -XX:-TieredCompilation -XX:CompileCommand=compileonly,Test.test Test.java
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/jdk/src/hotspot/share/opto/vectorization.cpp:231), pid=352409, tid=352424
# assert(_inputs.at(alias_idx) == nullptr || _inputs.at(alias_idx) == load->in(1)) failed: not yet touched or the same input
#
# JRE version: Java(TM) SE Runtime Environment (27.0) (fastdebug build 27-internal.open)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 27-internal.open, mixed mode, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x1c48db8] VLoopMemorySlices::find_memory_slices()+0x258
Current CompileTask:
C2:1829 102 % b Test::test @ 72 (106 bytes)
Stack: [0x00007f9b3850f000,0x00007f9b3860f000], sp=0x00007f9b386095c0, free space=1001k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x1c48db8] VLoopMemorySlices::find_memory_slices()+0x258 (vectorization.cpp:231)
V [libjvm.so+0x1c51144] VLoopAnalyzer::setup_submodules_helper()+0x74 (vectorization.cpp:190)
V [libjvm.so+0x1c511d4] VLoopAnalyzer::setup_submodules()+0x44 (vectorization.cpp:163)
V [libjvm.so+0x15dcc16] PhaseIdealLoop::auto_vectorize(IdealLoopTree*, VSharedData&)+0x9e6 (vectorization.hpp:864)
V [libjvm.so+0x15bb463] PhaseIdealLoop::build_and_optimize()+0xf13 (loopnode.cpp:5332)
V [libjvm.so+0xbb4ef0] PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x4c0 (loopnode.hpp:1233)
V [libjvm.so+0xbabe61] Compile::optimize_loops(PhaseIterGVN&, LoopOptsMode)+0xb1 (compile.cpp:2266)
V [libjvm.so+0xbaed8f] Compile::Optimize()+0xcbf (compile.cpp:2515)
V [libjvm.so+0xbb1f33] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x2023 (compile.cpp:860)
V [libjvm.so+0x9cc6e8] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x498 (c2compiler.cpp:147)
V [libjvm.so+0xbc1420] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x780 (compileBroker.cpp:2345)
V [libjvm.so+0xbc2c80] CompileBroker::compiler_thread_loop()+0x530 (compileBroker.cpp:1989)
V [libjvm.so+0x1124d7b] JavaThread::thread_main_inner()+0x13b (javaThread.cpp:776)
V [libjvm.so+0x1ba9036] Thread::call_run()+0xb6 (thread.cpp:242)
V [libjvm.so+0x17fe7d8] thread_native_entry(Thread*)+0x118 (os_linux.cpp:860)
- caused by
-
JDK-8367389 C2 SuperWord: refactor VTransform to model the whole loop instead of just the basic block
-
- Resolved
-
- relates to
-
JDK-8371603 C2: Missing Ideal optimizations for load and store vectors on SVE
-
- Resolved
-
-
JDK-8370562 Whitebox Fuzzer for C2
-
- Open
-