Escape analysis and related optimizations for Perl 6
von Jonathan Worthington (jnthn) (Prague.pm)
Escape analysis and related optimizations for Perl 6 richtet sich an Mit Thema vertraut und wird in English gehalten. Der Talk beginnt am 06.03.2019 um 15:40 Uhr und dauert 40 Minuten. Er findet im R1.046 (Roter Würfel) statt.
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.