From: simonmar Date: Thu, 10 Feb 2005 13:02:40 +0000 (+0000) Subject: [project @ 2005-02-10 13:01:52 by simonmar] X-Git-Tag: Initial_conversion_from_CVS_complete~1088 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=e7c3f957fd36fd9f6369183b7a31e2a4a4c21b43;hp=e7c3f957fd36fd9f6369183b7a31e2a4a4c21b43;p=ghc-hetmet.git [project @ 2005-02-10 13:01:52 by simonmar] 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. ---