RFR: 8264104: Eliminate unnecessary vector mask conversion during VectorUnbox for floating point VectorMask [v2]

Xiaohong Gong xgong at openjdk.java.net
Tue Apr 13 04:16:58 UTC 2021


On Thu, 8 Apr 2021 10:14:21 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

>>> @iwanowww should confirm correctness of such optimization.
>>> Regarding changes - they seem fine to me. I notice that VectorNode and its subclasses do not check for TOP inputs. Since Vector API introduce vectors in graph before SuperWord transformation their input could become dead. How such cases handled? And why we did not hit them yet? is_vect() should hit assert.
>> 
>> Thanks for looking at this PR @vnkozlov . To be honest, I'v no idea about the TOP checking issue to the inputs of the VectorNode. Hope @iwanowww  could explain more. Thanks!
>
>>  I notice that VectorNode and its subclasses do not check for TOP inputs. 
>> Since Vector API introduce vectors in graph before SuperWord transformation their input could become dead. 
>> How such cases handled? And why we did not hit them yet? is_vect() should hit assert.
> 
> `VectorLoadMaskNode::Identity()` can't observe TOP types because it uses the type cached at construction (`type()` and `VectorNode` extends `TypeNode`). Still, a TOP input is possible and should be filtered out by opcode check (`in(1)->Opcode() == Op_VectorStoreMask`).

Hi @iwanowww , all your review comments have been addressed. Would you mind having a look at it again? Thanks!

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

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


More information about the hotspot-compiler-dev mailing list