gocore: add dominator tree computation
Calculate the heap's dominator tree using modified L-T, reverse its
edges, and use that to calculate the per-object retained size.
One small functionality change: heapInfo.firstIdx is now set for empty
chunks, allowing binary search over Process.heapInfo.
Haven't really figured out what the public API for this should be yet;
maybe it's okay to expose the vertex names and provide an iterator
This should be pretty fast, but I haven't benchmarked it yet, so there
might be some low-hanging fruit lying around.
Reviewed-by: Keith Randall <email@example.com>
5 files changed