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

Aleksey Shipilev shade at redhat.com
Fri Apr 5 23:50:06 UTC 2019


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)

-- 
Thanks,
-Aleksey


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20190406/f579f3af/signature.asc>


More information about the hotspot-compiler-dev mailing list