Updated SoV documents

Tobias Hartmann tobias.hartmann at oracle.com
Mon Mar 30 12:32:48 UTC 2020

Hi Brian,

very nice!

Here are some minor comments/questions:

1. Background:
> each aimed at a understanding a separate aspect of the problem" 

Should be "each aimed at understanding a separate aspect of the problem".

3. JVM Model:
> However, because the JVM knows that inline objects do not have identity, it can routinely optimize layout (flattening), instantiation, member access, and calling conventions (scalarization) for inline objects.

We mostly use the term "scalarization" to describe that inline objects are "passed as fields" in the
scope of a method. Performance-wise this is the more important optimization compared to the calling
convention (see https://mail.openjdk.java.net/pipermail/valhalla-dev/2019-December/006668.html). I
would therefore suggest to differentiate between scalarization in the scope of a method (and it's
inlinees) and scalarization at method boundaries (i.e., the calling convention optimizations).

> The L World design was significantly  ...

Should be "L-World".

4: Translation scheme:
> class C extends A implements I { }

Shouldn't C be declared as "inline class C"?
Otherwise, it would be ref-default which wouldn't create C$val, right?

> now we have a new translation target, one which can routinely optimize layout, instantiation, and calling conventions for inline classes and their reference projections

What kind of optimizations do you expect for reference projections of inline classes?


More information about the valhalla-dev mailing list