Implement heap census support for small PINNED objects
This teaches the heap census logic to walk blocks of small PINNED
objects. The first commit is merely refactoring and constitutes the majority of the changes. The second commit is where the action is.
Also fixes a few other issues which I noticed in the course of debugging:
-
+RTS -w
is incompatible with+RTS -h
in the vanilla way (#9666 (closed)) - Slop was not zeroed when shrinking arrays in the vanilla way (#17572 (closed))
Closes #7275 (closed). Closes #9666 (closed). Closes #17572 (closed).
Edited by Ben Gamari