<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - [Statepoint] Remove gc pointer arguments which aren't used after relocation."
   href="http://llvm.org/bugs/show_bug.cgi?id=21733">21733</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[Statepoint] Remove gc pointer arguments which aren't used after relocation.
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Scalar Optimizations
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>listmail@philipreames.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>In a relocating collector, if the relocation of a pointer is never used,
there's no reason to relocate it at a given safepoint.  

If (after optimization) we end up with a gc.relocate which has no uses, the
gc.relocate can be removed.

If we end up with an argument to the gc.statepoint which is not used by any
gc.relocate, we can replace the argument with undef (so as not to perturb the
argument numbers for other gc.relocates).  Note that this optimization is only
sound if relocations are being explicitly represented in the IR.  For
non-relocating or partially relocating collectors this may not be the case.  As
a result, this should be made conditional on a property of the collector.

This is not intended to be a replacement for decent liveness analysis in the
code inserting statepoints; it's purpose is simply to clean up obvious badness
exposed by post insertion optimization.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>