[lworld] RFR: 8244414: [lworld] Migrate Valhalla micro benchmarks suite to not use V? syntax

Maurizio Cimadamore mcimadamore at openjdk.java.net
Wed May 6 14:01:18 UTC 2020

On Wed, 6 May 2020 13:26:31 GMT, Srikanth Adayapalam <sadayapalam at openjdk.org> wrote:

> Description of changes:
> Hi Maruizio,
>     Could you please review these assorted changes that block the build of Valhalla micro
> benchmarks ? This is a culumative fix for JDK-8244414 and JDK-8244458
>     You could skip a review of the benchmark source files themselves - these have only mechanical changes from V? to V.ref
>     except for one case where there was a usage of Node?<K,V> with Node actually being an identity class. We don't support
>     the transformed Node.ref<K,V> for identity classes, so I had to drop the '?'
> Problems fixed:
>     (i) Resolve.java: Diamond inference did not work for inline type constructors: Basically, the (static factory method
>     equivalent) constructors synthesized during diamond inference did not have their reference projection counterparts and
>     had to be paired up with them.
>     (ii) Types.java: LUB computation in the presence of mixed values and non-values should first apply widening conversion.
>     (iii) Enter.java: When we recompile files due to annotation processing rounds, discard
> any prior state carried on by the reference projection so as to keep it in sync with its peer.
> (A separate test will be added separately - for now building microbenchmarks is the test for this)

Added a couple of comments.

test/langtools/tools/javac/valhalla/lworld-values/LubWithInlines.java line 33:

> 32:
> 33: public class InlineDiamondTest<E> {
> 34:

This test seems the same as InlineDiamondTest...

src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java line 4003:

> 4002:
> 4003:         boolean haveValues = false;
> 4004:         boolean haveRefs = false;

If the goal is to fix the behavior of conditional expression typing, I think the fix should happen outside lub(), more
specifically in Attr::condType


PR: https://git.openjdk.java.net/valhalla/pull/35

More information about the valhalla-dev mailing list