Skip to content

non-moving: Optimise write barrier

Ben Gamari requested to merge wip/gc/opt-barrier into master

Previously the non-moving GC introduced an unnecessary branch in the update write barrier. This avoidable by folding the non-moving write barrier into the existing generational write barrier branch. This does, however, give up on the microoptimisation of folding the "what's next" step into the end of the update code.

I must have dropped a commit at some point as I swear I fixed this exact problem last year; quite concerning.

Also includes a couple of other small optimisations that I have hanging around:

  • Eliminate a redundant mark bitmap clear
  • Eagerly flush all capabilities' update remembered sets
Edited by Ben Gamari

Merge request reports