[LLVMdev] Improving Garbage Collection

Jon Harrop jonathandeanharrop at googlemail.com
Sun Dec 4 10:21:51 PST 2011


> Unlike LLVM, the JVM (and I think the CLR) doesn't even have a concept of
a non-GC pointer.

.NET has native pointers that are pointers pointing outside the managed
heap.

Cheers,
Jon.

From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On
Behalf Of Sebastian Redl
Sent: 07 July 2011 09:51
To: llvmdev at cs.uiuc.edu
Subject: Re: [LLVMdev] Improving Garbage Collection

On 07.07.2011 08:31, Nate Fries wrote: 
On 7/6/2011 6:24 PM, Talin wrote:

The LLVM code generators and analysis passes have a much more thorough
knowledge of SSA value lifetimes than frontends do, and therefore could
avoid spilling and reloading of values when it wasn't needed.
Although this would indeed be nice, it is not done by similar platforms in
practice. I have investigated [very] briefly into whether the CLR or JVM
implement garbage collection in their IR, and it does not seem that they do
(meaning, the CLR/JVM implementation itself is responsible for garbage
collection, not the code generated by the CLR/Java language compilers).
I'm not sure this is a valid comparison. CLR and JVM IRs are typed, and by
nature of those VMs, *all* pointers on the stack and in registers are
automatically GC roots. Unlike LLVM, the JVM (and I think the CLR) doesn't
even have a concept of a non-GC pointer.

Sebastian




More information about the llvm-dev mailing list