• simonmar's avatar
    [project @ 2005-02-10 13:01:52 by simonmar] · e7c3f957
    simonmar authored
    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.
    e7c3f957
CgPrimOp.hs 26.4 KB