Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : local-gc
http://hackage.haskell.org/trac/ghc/changeset/303a2659186aaecbf2610e6277eb6dfce2042f0b >--------------------------------------------------------------- commit 303a2659186aaecbf2610e6277eb6dfce2042f0b Author: Simon Marlow <[email protected]> Date: Sun Jun 5 13:50:32 2011 +0100 Bringing over the Local GC work from my darcs branch into a git branch. This implements the independent local-heap GC described in the paper "Multicore Garbage Collection with Local Heaps". PLAN | 726 ++++++++++++++++++ compiler/cmm/CLabel.hs | 8 +- compiler/codeGen/CgCase.lhs | 9 +- compiler/codeGen/CgClosure.lhs | 14 +- compiler/codeGen/CgCon.lhs | 30 +- compiler/codeGen/CgExpr.lhs | 5 +- compiler/codeGen/CgInfoTbls.hs | 55 +- compiler/codeGen/CgMonad.lhs | 12 +- compiler/codeGen/CgPrimOp.hs | 88 ++- compiler/codeGen/CgTailCall.lhs | 14 +- compiler/codeGen/StgCmmBind.hs | 11 +- compiler/codeGen/StgCmmCon.hs | 3 +- compiler/codeGen/StgCmmPrim.hs | 2 +- compiler/ghci/RtClosureInspect.hs | 2 +- includes/Cmm.h | 15 +- includes/mkDerivedConstants.c | 3 + includes/rts/Constants.h | 18 +- includes/rts/EventLogFormat.h | 16 + includes/rts/Flags.h | 2 + includes/rts/prof/LDV.h | 8 +- includes/rts/storage/Block.h | 8 +- includes/rts/storage/ClosureMacros.h | 71 ++- includes/rts/storage/ClosureTypes.h | 63 +- includes/rts/storage/Closures.h | 14 +- includes/rts/storage/GC.h | 91 ++- includes/rts/storage/InfoTables.h | 2 + includes/rts/storage/TSO.h | 1 + includes/stg/MiscClosures.h | 87 ++- includes/stg/Regs.h | 3 +- includes/stg/Types.h | 4 + rts/Apply.cmm | 21 +- rts/Arena.c | 5 +- rts/Capability.c | 53 +- rts/Capability.h | 54 +- rts/ClosureFlags.c | 11 +- rts/Exception.cmm | 5 + rts/HeapStackCheck.cmm | 18 +- rts/Interpreter.c | 1 + rts/LdvProfile.c | 13 +- rts/LdvProfile.h | 6 +- rts/Linker.c | 9 +- rts/Messages.c | 231 ++++++- rts/Messages.h | 6 +- rts/PrimOps.cmm | 234 ++++--- rts/Printer.c | 95 +-- rts/ProfHeap.c | 15 +- rts/RaiseAsync.c | 55 ++- rts/RetainerProfile.c | 47 +- rts/RtsFlags.c | 21 +- rts/RtsStartup.c | 11 +- rts/STM.c | 98 ++-- rts/STM.h | 2 +- rts/Schedule.c | 153 +++-- rts/Schedule.h | 5 + rts/Sparks.c | 4 +- rts/Stable.c | 10 + rts/Stats.c | 621 +++++++++------- rts/Stats.h | 14 +- rts/StgMiscClosures.cmm | 202 +++++- rts/StgStartup.cmm | 8 +- rts/Task.c | 19 +- rts/Task.h | 3 + rts/ThreadPaused.c | 20 +- rts/ThreadPaused.h | 2 +- rts/Threads.c | 65 +- rts/Trace.c | 3 +- rts/Updates.cmm | 12 +- rts/Updates.h | 54 +- rts/Weak.c | 41 +- rts/Weak.h | 2 +- rts/WritePolicy.h | 20 + rts/ghc.mk | 14 +- rts/sm/BlockAlloc.c | 3 + rts/sm/Compact.c | 48 +- rts/sm/Compact.h | 10 +- rts/sm/Evac.c | 280 ++++---- rts/sm/Evac.h | 7 +- rts/sm/GC.c | 929 ++++++++++++++++-------- rts/sm/GC.h | 16 +- rts/sm/GCAux.c | 14 +- rts/sm/GCTDecl.h | 98 +++ rts/sm/GCThread.h | 134 ++--- rts/sm/GCUtils.c | 131 +++- rts/sm/GCUtils.h | 22 +- rts/sm/Globalise.c | 1346 ++++++++++++++++++++++++++++++++++ rts/sm/Globalise.h | 37 + rts/sm/MBlock.c | 5 + rts/sm/MarkStack.h | 33 +- rts/sm/MarkWeak.c | 300 +++++--- rts/sm/MarkWeak.h | 4 - rts/sm/Sanity.c | 668 +++++++++++++++--- rts/sm/Sanity.h | 32 +- rts/sm/Scav.c | 378 +++++++---- rts/sm/Scav.h | 16 +- rts/sm/Storage.c | 469 ++++++++---- rts/sm/Storage.h | 15 +- rts/sm/Sweep.c | 92 +++ rts/sm/Sweep.h | 1 + utils/genapply/GenApply.hs | 12 +- 99 files changed, 6673 insertions(+), 2095 deletions(-) Diff suppressed because of size. To see it, use: git show 303a2659186aaecbf2610e6277eb6dfce2042f0b _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
