[jdk17] RFR: 8269179: Crash in TestMacroLogicVector::testSubWordBoolean: assert(_base >= VectorMask && _base <= VectorZ) failed: Not a Vector
Jie Fu
jiefu at openjdk.java.net
Wed Jun 23 02:35:43 UTC 2021
Hi all,
compiler/vectorization/TestMacroLogicVector.java crashed on AVX512 machines.
Here is the symptom and stack trace:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/jdk17/src/hotspot/share/opto/type.hpp:1717), pid=19546, tid=19562
# assert(_base >= VectorMask && _base <= VectorZ) failed: Not a Vector
#
# JRE version: OpenJDK Runtime Environment (17.0) (slowdebug build 17-internal+0-adhoc.jvm.jdk17)
# Java VM: OpenJDK 64-Bit Server VM (slowdebug 17-internal+0-adhoc.jvm.jdk17, mixed mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x3b8483] Type::is_vect() const+0x6b
#
Current CompileTask:
C2: 2275 22 % b compiler.vectorization.TestMacroLogicVector::testSubWordBoolean @ 2 (27 bytes)
Stack: [0x00007f0c021fa000,0x00007f0c022fb000], sp=0x00007f0c022f5e20, free space=1007k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x3b8483] Type::is_vect() const+0x6b
V [libjvm.so+0x3da830] vector_length_in_bytes(Node const*)+0x2b
V [libjvm.so+0x8b1e97] State::_sub_Op_MacroLogicV(Node const*)+0x81
V [libjvm.so+0x8d8014] State::DFA(int, Node const*)+0x17f6
V [libjvm.so+0xeceb84] Matcher::Label_Root(Node const*, State*, Node*, Node*&)+0x4c0
V [libjvm.so+0xece218] Matcher::match_tree(Node const*)+0x206
V [libjvm.so+0xecc40b] Matcher::xform(Node*, int)+0x1f3
V [libjvm.so+0xec75f9] Matcher::match()+0xdc7
V [libjvm.so+0x7d9e01] Compile::Code_Gen()+0x95
V [libjvm.so+0x7d10f5] Compile::Compile(ciEnv*, ciMethod*, int, bool, bool, bool, bool, bool, DirectiveSet*)+0x160f
V [libjvm.so+0x6c17c8] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x144
V [libjvm.so+0x7ee2ed] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x97d
V [libjvm.so+0x7ece21] CompileBroker::compiler_thread_loop()+0x3dd
V [libjvm.so+0x80d1ab] CompilerThread::thread_entry(JavaThread*, JavaThread*)+0x69
V [libjvm.so+0x12857f1] JavaThread::thread_main_inner()+0x17b
V [libjvm.so+0x1285669] JavaThread::run()+0x1d7
V [libjvm.so+0x1282e40] Thread::call_run()+0x180
V [libjvm.so+0xfc255b] thread_native_entry(Thread*)+0x18f
The reason is that for vpternlog_mem, `n->in(1)` points to BinaryNode.
This is incorrect since `BinaryNode->bottom_type()` returns `Type::BOTTOM`.
So it should be something like `n->in(1)->in(1)`.
Thanks.
Best regards,
Jie
-------------
Commit messages:
- 8269179: Crash in TestMacroLogicVector::testSubWordBoolean: assert(_base >= VectorMask && _base <= VectorZ) failed: Not a Vector
Changes: https://git.openjdk.java.net/jdk17/pull/123/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk17&pr=123&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8269179
Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
Patch: https://git.openjdk.java.net/jdk17/pull/123.diff
Fetch: git fetch https://git.openjdk.java.net/jdk17 pull/123/head:pull/123
PR: https://git.openjdk.java.net/jdk17/pull/123
More information about the hotspot-compiler-dev
mailing list