From 0d1a8d09f452977aadef7897aa12a8d41c7a4af0 Mon Sep 17 00:00:00 2001 From: Giovanni Campagna Date: Fri, 17 Jul 2015 11:55:49 +0100 Subject: Two step allocator for 64-bit systems 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 --- rts/Sparks.c | 1 + 1 file changed, 1 insertion(+) (limited to 'rts/Sparks.c') diff --git a/rts/Sparks.c b/rts/Sparks.c index ada2adfd3a..ec075805bf 100644 --- a/rts/Sparks.c +++ b/rts/Sparks.c @@ -14,6 +14,7 @@ #include "Trace.h" #include "Prelude.h" #include "Sparks.h" +#include "sm/HeapAlloc.h" #if defined(THREADED_RTS) -- cgit v1.2.1