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;
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);
void
heapCensus( void )
{
- nat g, s;
+ nat g;
Census *census;
census = &censuses[era];
#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