RFR 8225371 [lworld][c1] TestLWorld.java fails with -DVerifyVM=true

Ioi Lam ioi.lam at oracle.com
Thu Jun 20 05:57:14 UTC 2019


https://bugs.openjdk.java.net/browse/JDK-8225371
http://cr.openjdk.java.net/~iklam/valhalla/8225371-TestLWorld-VerifyVM.v01/

This failure is caused by the incorrect implementation of type info
merging for Phi nodes introduced by JDK-8214742.

Type info merging was necessary at that time because it wasn't possible
to distinguish between flattened vs non-flattened arrays. However, that's
no longer the case since the introduction of ArrayStorageProperties in
JDK-8222525.

If we keep the type info merging code (and fix it properly), it might
benefit code pattern like this:

     Point arr[] = cond ? arr1 : arr2;
      arr[0] = point;

(If we don't preserve the type info in the Phi node, the aastore would
treat the array as an Object[] and will take the slow path for storing
the value.)

However, it's unclear how important this case is. Let's remove the merging
code for now to minimize the difference with the mainline repo.



More information about the valhalla-dev mailing list