<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#ffffff">
On 07.07.2011 08:31, Nate Fries wrote:
<blockquote cite="mid:4E1552B7.4090007@yahoo.com" type="cite">
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
On 7/6/2011 6:24 PM, Talin wrote:<br>
<blockquote
cite="mid:CABwJDd=0vcuMDDrkM9-U7BdegngT4R8qUM=Gv6qLdinwB8ctUA@mail.gmail.com"
type="cite">
<div>
<div>
<div>
<div style="border-collapse: collapse; font-family:
arial,sans-serif; font-size: 13px;">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.</div>
</div>
</div>
</div>
</blockquote>
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).<br>
</blockquote>
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.<br>
<br>
Sebastian<br>
</body>
</html>