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

Xiaohong Gong xgong at openjdk.java.net
Thu Mar 11 03:02:10 UTC 2021


On Thu, 11 Mar 2021 02:32:04 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:

>> 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
>
> src/hotspot/share/opto/vectornode.hpp line 766:
> 
>> 764:   virtual int memory_size() const {
>> 765:     if (in(MemNode::ValueIn)->bottom_type()->isa_vect() != NULL) {
>> 766:       return vect_type()->length_in_bytes();
> 
> The same issue also exists when method `"vect_type()"` (line 757) is called directly, doesn't it?

All codes that calles `vect_type()` in `StoreVectorNode` met the same issue. And I think it's better to make sure the `in(MemNode::ValueIn)->bottom_type()` is a `TypeVect`. We need to fix the issues that make it not the right type, doesn't it?

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

PR: https://git.openjdk.java.net/jdk/pull/2867


More information about the hotspot-compiler-dev mailing list