Skip to content

Experiment with inlining and simplify the implementation

This MR is based on top of !41 (merged) and is comprised of the 4 topmost commits.

The first commit shows that inlining is very beneficial.

The second commit shows the performance benefits (in the local_roots benchmark) and simplicity of implementation of further simplifying creation by avoiding testing for Is_young.

The third commits further simplifies the implementation a lot, by simplifying the promotion/demotion logic. One lesson of the remembered set experiment is that the previous implementation was too complicated. We manage to simplify it without losing perf.

The main implementation is now faster than using the remembered set and is not more complicated. (Next, one should try to optimize the remembered set implementation as much to try to get the best of both.)

(cc @gasche if you want to review part or whole or the MR, though this is a big one.)

Merge request reports

Loading