<!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>