Accurate garbage collection in an uncooperative environment

Fergus Henderson
2002
65 citations
1 reference

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.

1 repository
1 reference

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!