[LLVMdev] Improving Garbage Collection
Anderson, Todd A
todd.a.anderson at intel.com
Thu Jul 7 14:56:17 PDT 2011
The initial step of your evolutionary approach sounds basically equivalent to what is possible today. When you try to go beyond that you will run into a lot of issues, since the backend is untyped and doesn't even distinguish between pointers and integers. The closest thing we have to tracking liveness of SSA values throughout the backend is debug info, which is frequently incorrect (although usually not due to the code generator itself).
Who is going to implement support for all of this in the code generator passes and maintain it? Will GC compatibility be a requirement for any further improvements in code generation?
[TAA] I don't know who would do it but perhaps it isn't as daunting as one might expect. We implemented most of this in the Intel compiler and ended up changing about 1-2% of the lines in the code base. The trend seems to be for most new languages to be garbage collected. Yes, you can do garbage collection (even accurate garbage collection) totally at the user-level but in our experience you may be leaving 10% or more performance on the table by not having a tighter integration with the underlying compiler.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev