<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 --- - Add a feature to clobber non-calle-save regs in the prolog."
   href="http://llvm.org/bugs/show_bug.cgi?id=19267">19267</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Add a feature to clobber non-calle-save regs in the prolog.
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>new-bugs
          </td>
        </tr>

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

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

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

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

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

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

        <tr>
          <th>Component</th>
          <td>new bugs
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>atrick@apple.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>Pretty simple. Just write some trash value into all registers in the prolog
that aren't preserved by the function's calling convention.

We can add a function attribute to control this.
This feature could help stress test things like
- liveness across call site
- a managed runtime that saves/restores context around calls to native code
- the stack map liveness feature that reports 

In the case of stackmap liveness, we could clobber dead registers at the point
of the stackmap to verify our own analysis. This would be a more direct way to
verify the liveness analysis.

There is some speculation that this could harden code against security
vulnerabilities, but I haven't confirmed that. 

For my immediate goals, verification in the runtime may be sufficient. But I
want to float the idea early of having LLVM generate clobber regs to get input
from others.</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>