X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fruntime%2Fstorage%2FSMdu.lc;h=151d4473596f063ca1df33f766eff60fa04afc8b;hb=769ce8e72ae626356ce57162b7ff448c0ef7e700;hp=3dbbd3946ae1b18f732b48c220bd513aec36ad91;hpb=a7e6cdbfc4f27c2e0ab9c12ebe6431c246c74c6d;p=ghc-hetmet.git diff --git a/ghc/runtime/storage/SMdu.lc b/ghc/runtime/storage/SMdu.lc index 3dbbd39..151d447 100644 --- a/ghc/runtime/storage/SMdu.lc +++ b/ghc/runtime/storage/SMdu.lc @@ -157,9 +157,9 @@ collectHeap(reqsize, sm, do_full_collection) /* end of bracket */ #ifndef PAR - sweepUpDeadMallocPtrs(sm->MallocPtrList, - dualmodeInfo.modeinfo[COMPACTING].base, - dualmodeInfo.bits); + sweepUpDeadForeignObjs(sm->ForeignObjList, + dualmodeInfo.modeinfo[COMPACTING].base, + dualmodeInfo.bits); #endif LinkCAFs(sm->CAFlist); @@ -170,11 +170,15 @@ collectHeap(reqsize, sm, do_full_collection) #ifdef PAR LinkLiveGAs(dualmodeInfo.modeinfo[COMPACTING].base, dualmodeInfo.bits); #else +/* stable pointers are now accessed via sm->roots DEBUG_STRING("Linking Stable Pointer Table:"); LINK_LOCATION_TO_CLOSURE(&sm->StablePointerTable); +*/ +#if 1 /* !defined(GRAN) */ /* HWL */ LinkAStack( MAIN_SpA, stackInfo.botA ); LinkBStack( MAIN_SuB, stackInfo.botB ); #endif +#endif /* Do Inplace Compaction */ /* Returns start of next closure, -1 gives last allocated word */ @@ -185,7 +189,7 @@ collectHeap(reqsize, sm, do_full_collection) dualmodeInfo.bits, dualmodeInfo.bit_words #ifndef PAR - ,&(sm->MallocPtrList) + ,&(sm->ForeignObjList) #endif ) - 1; @@ -203,13 +207,13 @@ collectHeap(reqsize, sm, do_full_collection) #ifdef PAR EvacuateLocalGAs(rtsTrue); #else - evacSPTable( sm ); + /* evacSPTable( sm ); stable pointers now reachable via sm->roots */ #endif /* PAR */ EvacuateRoots( sm->roots, sm->rootno ); -#ifdef CONCURRENT +#if defined(CONCURRENT) && !defined(GRAN) EvacuateSparks(); #endif -#ifndef PAR +#if !defined(PAR) /* && !defined(GRAN) */ /* HWL */ EvacuateAStack( MAIN_SpA, stackInfo.botA ); EvacuateBStack( MAIN_SuB, stackInfo.botB, &bstk_roots ); #endif /* !PAR */ @@ -219,7 +223,7 @@ collectHeap(reqsize, sm, do_full_collection) #ifdef PAR RebuildGAtables(rtsTrue); #else - reportDeadMallocPtrs(sm->MallocPtrList, NULL, &(sm->MallocPtrList) ); + reportDeadForeignObjs(sm->ForeignObjList, NULL, &(sm->ForeignObjList) ); #endif /* PAR */ sm->hp = hp_start = ToHp; /* Last allocated word */