RFR: 8263164: assert(_base >= VectorA && _base <= VectorZ) failed: Not a Vector while calling StoreVectorNode::memory_size()
Jie Fu
jiefu at openjdk.java.net
Mon Mar 8 06:31:12 UTC 2021
Hi all,
Several Vector API tests failed intermittently due to this assert.
#
# Internal Error (/home/jvm/jdk/src/hotspot/share/opto/type.hpp:1686), pid=10561, tid=10577
# assert(_base >= VectorA && _base <= VectorZ) failed: Not a Vector
#
# JRE version: OpenJDK Runtime Environment (17.0) (fastdebug build 17-internal+0-adhoc..jdk)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 17-internal+0-adhoc..jdk, compiled mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x918f44] StoreVectorNode::memory_size() const+0xb4
The reason is that StoreVectorNode::memory_size() will fail if StoreVectorNode->in(MemNode::ValueIn)->bottom_type() == Type::TOP.
However, this case seems possible during C2's optimization.
And the same bug exists for LoadVectorNode::memory_size() as well.
The fix returns 0 if StoreVectorNode->in(MemNode::ValueIn)->bottom_type() is not a vector type.
Testing:
- jdk/incubator/vector
- tier1~tier3
Any comments?
Thanks.
Best regards,
Jie
-------------
Commit messages:
- 8263164: assert(_base >= VectorA && _base <= VectorZ) failed: Not a Vector while calling StoreVectorNode::memory_size()
Changes: https://git.openjdk.java.net/jdk/pull/2867/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2867&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8263164
Stats: 18 lines in 1 file changed: 16 ins; 0 del; 2 mod
Patch: https://git.openjdk.java.net/jdk/pull/2867.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/2867/head:pull/2867
PR: https://git.openjdk.java.net/jdk/pull/2867
More information about the hotspot-compiler-dev
mailing list