Is this anything you'd be willing to share publicly?
How did you determine the scope of a chunk of memory? I believe you need this to run any of the GC algorithms.
I checked the hboehm documentation (1) and in the section on "Locating roots" it says "you don't want to know":
-Runtime stack(s): you don't really want to know.Need consistent caller-save reg. snapshot
-Static data segments: you don't want to know that either.
-Very platform dependent
But you only have to do it once per platform.
(1) https://www.hboehm.info/gc/04tutorial.pdf