Accurate garbage collection in an uncooperative environment
Abstract
Previous attempts at garbage collection in uncooperative environments have generally used conservative or mostly-conservative approaches. We describe a technique for doing fully type-accurate garbage collection in an uncooperative environment, using a "shadow stack" to link structs of pointer-containing variables, together with the data or code needed to trace them. We have implemented this in the Mercury compiler, which generates C code, and present preliminary performance data on the overheads of this technique. We also show how this technique can be extended to handle multithreaded applications.
Code References
llvm/llvm-project
1 file
llvm/docs/GarbageCollection.rst
1
L1027
[Henderson2002] `Accurate Garbage Collection in an Uncooperative Environment
Link copied to clipboard!