[m-dev.] 4 tag bits

Julien Fischer jfischer at opturion.com
Wed Jul 6 10:58:45 AEST 2016


Hi Paul,

On Mon, 4 Jul 2016, Paul Bone wrote:

> While working on a memory fragmentation issue for Prince I was reading the
> Boehm GC sources.  I now have a good understanding of their allocation
> algorithms.  I found that Boehm GC memory is allocated in "granules" (both
> sized and aligned), and a granule is two native machine words long.  Meaning
> that we could add an extra tag bit on all backends using the Boehm GC.
>
> If we do this are there any other limitations we might hit?
>
> I assume there are a few, relatively easy to find places in the code where
> this needs to be updated.  Are there any hard-to-find or not-obvious things
> that need to be updated?

In principle, everything affected by the number of tag bits should to
be controlled by the macro MR_TAGITS and its friends.  (Some of the
build scripts -- the one that builds the source distribution for example
-- do hardcode the number of tag bits.)

> In principal do people agree with this change?

Sure, although the use of the extra tag bit should be optional to
begin with.

Julien.


More information about the developers mailing list