[project @ 2005-02-10 13:01:52 by simonmar]
authorsimonmar <unknown>
Thu, 10 Feb 2005 13:02:40 +0000 (13:02 +0000)
committersimonmar <unknown>
Thu, 10 Feb 2005 13:02:40 +0000 (13:02 +0000)
GC changes: instead of threading old-generation mutable lists
through objects in the heap, keep it in a separate flat array.

This has some advantages:

  - the IND_OLDGEN object is now only 2 words, so the minimum
    size of a THUNK is now 2 words instead of 3.  This saves
    some amount of allocation (about 2% on average according to
    my measurements), and is more friendly to the cache by
    squashing objects together more.

  - keeping the mutable list separate from the IND object
    will be necessary for our multiprocessor implementation.

  - removing the mut_link field makes the layout of some objects
    more uniform, leading to less complexity and special cases.

  - I also unified the two mutable lists (mut_once_list and mut_list)
    into a single mutable list, which lead to more simplifications
    in the GC.


No differences found