X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FProfHeap.c;h=d398afd66fd8deae370133a95f94b4f88a15b3e1;hb=09895ff7da70ae311b8deb47d77d612fe9964403;hp=f446d0b09b080d931f58827db5c2d3aaca13f029;hpb=9a0030858ea9f26bb8fddc920f217f431f5bdebb;p=ghc-hetmet.git diff --git a/rts/ProfHeap.c b/rts/ProfHeap.c index f446d0b..d398afd 100644 --- a/rts/ProfHeap.c +++ b/rts/ProfHeap.c @@ -15,6 +15,7 @@ #include "Stats.h" #include "Hash.h" #include "RetainerProfile.h" +#include "LdvProfile.h" #include "Arena.h" #include "Printer.h" @@ -875,10 +876,8 @@ heapCensusChain( Census *census, bdescr *bd ) case CONSTR: case FUN: case IND_PERM: - case IND_OLDGEN: - case IND_OLDGEN_PERM: - case CAF_BLACKHOLE: case BLACKHOLE: + case BLOCKING_QUEUE: case FUN_1_0: case FUN_0_1: case FUN_1_1: @@ -911,7 +910,8 @@ heapCensusChain( Census *census, bdescr *bd ) case MVAR_CLEAN: case MVAR_DIRTY: case WEAK: - case STABLE_NAME: + case PRIM: + case MUT_PRIM: case MUT_VAR_CLEAN: case MUT_VAR_DIRTY: prim = rtsTrue; @@ -959,31 +959,6 @@ heapCensusChain( Census *census, bdescr *bd ) break; #endif - case TREC_HEADER: - prim = rtsTrue; - size = sizeofW(StgTRecHeader); - break; - - case TVAR_WATCH_QUEUE: - prim = rtsTrue; - size = sizeofW(StgTVarWatchQueue); - break; - - case INVARIANT_CHECK_QUEUE: - prim = rtsTrue; - size = sizeofW(StgInvariantCheckQueue); - break; - - case ATOMIC_INVARIANT: - prim = rtsTrue; - size = sizeofW(StgAtomicInvariant); - break; - - case TVAR: - prim = rtsTrue; - size = sizeofW(StgTVar); - break; - case TREC_CHUNK: prim = rtsTrue; size = sizeofW(StgTRecChunk); @@ -1066,7 +1041,7 @@ heapCensusChain( Census *census, bdescr *bd ) void heapCensus( void ) { - nat g, s; + nat g; Census *census; census = &censuses[era]; @@ -1084,17 +1059,11 @@ heapCensus( void ) #endif // Traverse the heap, collecting the census info - if (RtsFlags.GcFlags.generations == 1) { - heapCensusChain( census, g0s0->blocks ); - } else { - for (g = 0; g < RtsFlags.GcFlags.generations; g++) { - for (s = 0; s < generations[g].n_steps; s++) { - heapCensusChain( census, generations[g].steps[s].blocks ); - // Are we interested in large objects? might be - // confusing to include the stack in a heap profile. - heapCensusChain( census, generations[g].steps[s].large_objects ); - } - } + for (g = 0; g < RtsFlags.GcFlags.generations; g++) { + heapCensusChain( census, generations[g].blocks ); + // Are we interested in large objects? might be + // confusing to include the stack in a heap profile. + heapCensusChain( census, generations[g].large_objects ); } // dump out the census info