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

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Fri Apr 5 23:54:11 UTC 2019


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