from static compiler to dynamic compiler

Thomas Wuerthinger thomas.wuerthinger at oracle.com
Fri Mar 16 07:37:39 PDT 2012


Miguel,

We have not yet committed to a fixed public API for inlining or escape 
analysis hints. In our last year's JVMLangSummit presentation 
(http://medianetwork.oracle.com/video/player/1113230360001), we 
suggested possible inlining hints on the granularity of 
NEVER-LESS-MORE-ALWAYS. We hope that analyzing the requirements of 
different languages running on the JVM (such as Scala) will help us 
refine and stabilize this API. In general, we are very flexible as our 
inlining and also our escape analysis is not done in combination with 
bytecode parsing. Therefore, we do not need to make greedy decisions 
upfront, but can use a priority queue in order to make sure that all of 
the hot parts of a method get their fair share in terms of inlining budget.

One potential interesting annotation could also be to help the VM 
identify megamorphic call sites such that the type profiling caches are 
adjusted in size.

If you could provide us with some example Scala benchmarks, we would be 
able to find out which of the potential ideas about compiler hint 
annotations are actually beneficial in the context of Scala programs.

- thomas


On 15.03.2012 11:01, Garcia Gutierrez Miguel Alfredo wrote:
> Hi,
>
> I'm wondering what annotations (or attributes) the Graal VM accepts in bytecode, as hints about allowable optimizations. In particular "inline".
>
> Miguel
> http://lampwww.epfl.ch/~magarcia/ScalaCompilerCornerReloaded/<http://lampwww.epfl.ch/%7Emagarcia/ScalaCompilerCornerReloaded/>
>
> --
> Miguel Garcia
> Swiss Federal Institute of Technology
> EPFL - IC - LAMP1 - INR 328 - Station 14
> CH-1015 Lausanne - Switzerland
> http://lamp.epfl.ch/~magarcia/



More information about the graal-dev mailing list