February report of the Perl 6 Development Grant of Jonathan Worthington

Jonathan writes:

The majority of my Perl 6 grant time during February was spent on the escape analysis and scalar replacement work. Happily, the first round of work on this analysis and optimization reached the point of being complete and stable enough to merge into MoarVM master, so Perl 6 users can now benefit from it. I also made allocation profiling aware of scalar replacement, meaning profiling does not block the optimization and collects statistics about how many scalar replacements took place.

I also started on the next round of escape analysis work, which handles transitive object relationships. This means if we have, for instance, a Scalar that does not escape, and a Num which also does not escape is assigned into it, then we can scalar replace both. The basic algorithm currently in master would conservatively consider the Num as having escaped. Further work is needed with regard to deoptimization of such cases before this work can be merged.

I also worked on enabling more aggressive optimization of inlined code. Sometimes, knowledge of the context the code is being inlined into allows for significant further optimization of the inlinee. While profiling a hash benchmark, I spotted some duplicated sanity checks during hash access, and eliminated those for a speedup, and started looking into a means to speed up attribute access in the non-mixin case.

Finally, I fixed a recent regression, and did assorted bits of code reivew, replying to issues, and merging PRs.

9:45    Fix remaining issues with basic escape analysis and
    scalar replacement; merge the branch
1:26    Integrate allocation profiling and scalar replacement
5:09    Work on transitive object handling in escape analsyis
3:50    More aggressively optimize inlined code after inlining
1:43    Look into a bug involving BEGIN, closures, and $/; fix it.
1:29    Eliminate duplicate checks on hash access, giving ~5% off
    a hash access benchmark
3:55    Work on speeding up attribute access in non-mixin cases
1:48    Assorted code review, replying to issues, merging PRs

Total: 29:05

Remaining funding-approved hours on current grant period: 131:46
Remaining community-approved hours on current grant period: 297:46

About TPF

The Perl Foundation - supporting the Perl community since 2000. Find out more at www.perlfoundation.org.

About this Entry

This page contains a single entry by Matthias Bloch published on March 15, 2019 1:09 PM.

Maintaining Perl 5 (Tony Cook): February 2019 Grant Report was the previous entry in this blog.

Grant Proposal: Create a complete course of the Perl 6 programming language is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.


OpenID accepted here Learn more about OpenID
Powered by Movable Type 6.2.2