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

Jie Fu jiefu at openjdk.java.net
Sat Mar 13 12:28:24 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 two additional commits since the last revision:

 - Cache _vect_type
 - Revert changes

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

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

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

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