RFR: 8263164: assert(_base >= VectorA && _base <= VectorZ) failed: Not a Vector while calling StoreVectorNode::memory_size() [v3]

Jie Fu jiefu at openjdk.java.net
Thu Mar 11 16:13:25 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

Jie Fu has updated the pull request incrementally with one additional commit since the last revision:

  Fix other vector nodes

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/2867/files
  - new: https://git.openjdk.java.net/jdk/pull/2867/files/9166bd17..311c9767

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=2867&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=2867&range=01-02

  Stats: 63 lines in 2 files changed: 46 ins; 7 del; 10 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