RFR: 8267375: Aarch64: JVM crashes with option -XX:PrintIdealGraphLevel=3 on SVE backend [v2]

Andrew Haley aph at openjdk.java.net
Fri May 28 13:54:08 UTC 2021


On Fri, 28 May 2021 07:32:26 GMT, Wang Huang <whuang at openjdk.org> wrote:

>> Reason: 
>> 
>> 
>> operand pRegGov()
>> %{
>>   constraint(ALLOC_IN_RC(gov_pr));
>>   match(RegVectMask);
>>   op_cost(0);
>>   format %{ %}
>>   interface(REG_INTER);
>> %}
>> 
>> if `pRegGov` is used as a `TEMP`, like :
>> 
>> 
>> instruct insertB_small(vReg dst, vReg src, iRegIorL2I val, immI idx, pRegGov pTmp, rFlagsReg cr)
>> %{
>>   predicate(UseSVE > 0 && n->as_Vector()->length() <= 32 &&
>>             n->bottom_type()->is_vect()->element_basic_type() == T_BYTE);
>>   match(Set dst (VectorInsert (Binary src val) idx));
>>   effect(TEMP_DEF dst, TEMP pTmp, KILL cr); // here
>> 
>> 
>> It will have the type `Type::VectorMask` in `MachTempNode` which is generated from `Expand`. However, we miss `Type::VectorMask` in `Type::category()`.
>> 
>> We can fix this bug simply by adding `case Type::VectorMask` in `Type::category()`.
>> 
>> Although now we can only reproduce this bug on AArch64,  it should be added for all platforms with predicate support.
>
> Wang Huang has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision:
> 
>   8267375: Aarch64: JVM crashes with option -XX:PrintIdealGraphLevel=3 on SVE backend

Marked as reviewed by aph (Reviewer).

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

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


More information about the hotspot-compiler-dev mailing list