diff options
author | Simon Marlow <simonmar@microsoft.com> | 2007-10-31 12:51:36 +0000 |
---|---|---|
committer | Simon Marlow <simonmar@microsoft.com> | 2007-10-31 12:51:36 +0000 |
commit | d5bd3e829c47c03157cf41cad581d2df44dfd81b (patch) | |
tree | 98fb99c2713190f77d1999345888b2dcdabe5bf2 /rts/Makefile | |
parent | 9e5fe6be620eaf03a86f1321bef603ca43699a3c (diff) | |
download | haskell-d5bd3e829c47c03157cf41cad581d2df44dfd81b.tar.gz |
Refactoring of the GC in preparation for parallel GC
This patch localises the state of the GC into a gc_thread structure,
and reorganises the inner loop of the GC to scavenge one block at a
time from global work lists in each "step". The gc_thread structure
has a "workspace" for each step, in which it collects evacuated
objects until it has a full block to push out to the step's global
list. Details of the algorithm will be on the wiki in due course.
At the moment, THREADED_RTS does not compile, but the single-threaded
GC works (and is 10-20% slower than before).
Diffstat (limited to 'rts/Makefile')
-rw-r--r-- | rts/Makefile | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/rts/Makefile b/rts/Makefile index 19a7a2288f..9437253d77 100644 --- a/rts/Makefile +++ b/rts/Makefile @@ -390,7 +390,7 @@ sm/Compact_HC_OPTS += -optc-finline-limit=2500 # use a variety of types to represent closure pointers (StgPtr, # StgClosure, StgMVar, etc.), and without -fno-strict-aliasing gcc is # allowed to assume that these pointers do not alias. eg. without -# this flag we get problems in GC.c:copy() with gcc 3.4.3, the +# this flag we get problems in sm/Evac.c:copy() with gcc 3.4.3, the # upd_evacee() assigments get moved before the object copy. SRC_CC_OPTS += -fno-strict-aliasing |