Commit b7b6617a authored by Ben Gamari's avatar Ben Gamari 🐢
Browse files

rts: Allow profiling by closure type in prof way

Previously we inexplicably disabled support for `-hT` profiling in the profiled
way. Admittedly, there are relatively few cases where one would prefer -hT to
`-hd`, but the option should nevertheless be available for the sake of
consistency.

Note that this does mean that there is a bit of an inconsistency in the behavior
of `-h`: in the profiled way `-h` behaves like `-hc` whereas in the non-profiled
way it defaults to `-hT`.
parent 260e23b4
......@@ -127,8 +127,8 @@ closureIdentity( const StgClosure *p )
return retainerSetOf(p);
else
return NULL;
#endif
#else
case HEAP_BY_CLOSURE_TYPE:
{
const StgInfoTable *info;
......@@ -147,7 +147,6 @@ closureIdentity( const StgClosure *p )
}
}
#endif
default:
barf("closureIdentity");
}
......@@ -815,7 +814,6 @@ dumpCensus( Census *census )
if (count == 0) continue;
#if !defined(PROFILING)
switch (RtsFlags.ProfFlags.doHeapProfile) {
case HEAP_BY_CLOSURE_TYPE:
fprintf(hp_file, "%s", (char *)ctr->identity);
......@@ -823,7 +821,6 @@ dumpCensus( Census *census )
count * sizeof(W_));
break;
}
#endif
#if defined(PROFILING)
switch (RtsFlags.ProfFlags.doHeapProfile) {
......
......@@ -343,10 +343,9 @@ usage_text[] = {
" -xt Include threads (TSOs) in a heap profile",
"",
" -xc Show current cost centre stack on raising an exception",
#else
#endif /* PROFILING */
"",
" -hT Produce a heap profile grouped by closure type"
#endif /* PROFILING */
#if defined(TRACING)
"",
......@@ -1956,6 +1955,9 @@ static bool read_heap_profiling_flag(const char *arg)
case 'b':
RtsFlags.ProfFlags.doHeapProfile = HEAP_BY_LDV;
break;
case 'T':
RtsFlags.ProfFlags.doHeapProfile = HEAP_BY_CLOSURE_TYPE;
break;
}
break;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment