Skip to main content

Escape analysis and related optimizations for Perl 6

by Jonathan Worthington (‎jnthn‎)

Escape analysis and related optimizations for Perl 6 aimed at Familar with subject and is held in English. This talk starts on 2019-03-06 at 15:40 for 40 minutes. It takes place at the R1.046 (Red Cube).

Escape analysis is technique used by compilers to reason about the lifetimes and scope of objects. An object can be said to "escape" if there is a point in the program where it becomes referenced from a location we cannot reason about in the analysis. Partial escape analysis extends this idea by also considering that an object may only escape along certain code paths, but not along all of them.

The results of these analyses allow for a range of powerful optimizations. The allocation of an object on the heap may, for example, be avoided entirely, or perhaps deferred, so it need only happen on certain code paths. Furthermore, an object's attributes may, instead of being stored in a heap object, be represented as a series of locals, which in turn allows for further optimizations.

In this talk I'll introduce escape analysis, and show examples of Perl 6 programs where the analysis can demonstrate interesting program properties and allow for useful optimizations. I'll then move on to discuss my work to bring this analysis and a number of new optimizations to the MoarVM dynamic optimizer, covering what has been achieved so far, the results, and what comes next.

Slides: https://jnthn.net/papers/2019-gpw-ea.pdf


Tags: moarvm optimization performance perl6

Interest in attending: