RFR (XS) 8222032: x86_32 fails with "wrong size of mach node" on AVX-512 machine

Vladimir Kozlov vladimir.kozlov at oracle.com
Sat Apr 6 00:44:25 UTC 2019


+1

Vladimir K

On 4/5/19 4:54 PM, Vladimir Ivanov wrote:
> Looks good.
> 
> Best regards,
> Vladimir Ivanov
> 
> On 05/04/2019 16:50, Aleksey Shipilev wrote:
>> Bug:
>>    https://bugs.openjdk.java.net/browse/JDK-8222032
>>
>> This apparently happens because MachSpillCopyNode size calculation is not correct when AVX-512 is
>> involved. x86_64.ad resolves this by calling into MachNode::size, which emits the whole thing into
>> the scratch buffer and thus cheats^W passes through size asserts fine:
>>    http://hg.openjdk.java.net/jdk/jdk/file/dfba4e321ab3/src/hotspot/cpu/x86/x86_64.ad#l1504
>>
>> x86_32.ad can do the same:
>>
>> diff -r b75026a7ca95 src/hotspot/cpu/x86/x86_32.ad
>> --- a/src/hotspot/cpu/x86/x86_32.ad     Sat Apr 06 00:30:50 2019 +0200
>> +++ b/src/hotspot/cpu/x86/x86_32.ad     Sat Apr 06 00:31:00 2019 +0200
>> @@ -1307,11 +1307,11 @@
>>   uint MachSpillCopyNode::size(PhaseRegAlloc *ra_) const {
>> -  return implementation( NULL, ra_, true, NULL );
>> +  return MachNode::size(ra_);
>>   }
>>
>> Testing: Linux x86_32 fastdebug tier{1,2}, jdk-submit (running)
>>


More information about the hotspot-compiler-dev mailing list