Skip to content
  • gcampax's avatar
    Two step allocator for 64-bit systems · 0d1a8d09
    gcampax authored and Simon Marlow's avatar Simon Marlow committed
    Summary:
    The current OS memory allocator conflates the concepts of allocating
    address space and allocating memory, which makes the HEAP_ALLOCED()
    implementation excessively complicated (as the only thing it cares
    about is address space layout) and slow. Instead, what we want
    is to allocate a single insanely large contiguous block of address
    space (to make HEAP_ALLOCED() checks fast), and then commit subportions
    of that in 1MB blocks as we did before.
    This is currently behind a flag, USE_LARGE_ADDRESS_SPACE, that is only enabled for
    certain OSes.
    
    Test Plan: validate
    
    Reviewers: simonmar, ezyang, austin
    
    Subscribers: thomie, carter
    
    Differential Revision: https://phabricator.haskell.org/D524
    
    GHC Trac Issues: #9706
    0d1a8d09