[LLVMbugs] [Bug 1917] New: Use address space markers to improve GC

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Mon Jan 14 11:30:52 PST 2008


           Summary: Use address space markers to improve GC
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: NEW
          Keywords: code-quality
          Severity: enhancement
          Priority: P2
         Component: Common Code Generator Code
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: sabre at nondot.org
                CC: gordonhenriksen at mac.com, llvmbugs at cs.uiuc.edu

One of the big bad things about the llvm.gcroot intrinsic is that it implicitly
pins the variable on the stack, preventing optimization and analysis from being
effective.  Instead of marking GC'd pointers with llvm.gcroot, it would be
really cool to:

1. Mark 'GC pointers' as such, and allow mem2reg to promote them.
2. Have the code generator insert spills and reloads of the registers when they
are live across safe points (i.e. calls). 

I've long resisted having a flag on pointers to do this, but now that we have
support for alternate address spaces, it seems like a reasonable thing to
define one address space as being the "GC address space" or something, and use
this mechanism to mark our pointers.

This should lead to significantly better codegen for languages that use GC.


Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the llvm-bugs mailing list