<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 --- - Assert in llvm::MachineRegisterInfo::clearVirtRegs: Vreg use list non-empty still"
   href="http://llvm.org/bugs/show_bug.cgi?id=15787">15787</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Assert in llvm::MachineRegisterInfo::clearVirtRegs: Vreg use list non-empty still
          </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>normal
          </td>
        </tr>

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

        <tr>
          <th>Component</th>
          <td>Common Code Generator Code
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>hfinkel@anl.gov
          </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>Created <span class=""><a href="attachment.cgi?id=10373" name="attach_10373" title="bugpoint reduced test case">attachment 10373</a> <a href="attachment.cgi?id=10373&action=edit" title="bugpoint reduced test case">[details]</a></span>
bugpoint reduced test case

I may have found a bug in the register allocator. To see the bug, first apply
the attached patch (which makes the PPC optimizeCompareInst function more
aggressive than it should be), and then run the attached test case using:
-mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 -- While applying the patch
will make optimizeCompareInst make a transformation that it can't guarantee is
legal, I don't think that the register allocator should care about that.

It currently asserts like this:
llc: llvm-trunk/lib/CodeGen/MachineRegisterInfo.cpp:111: void
llvm::MachineRegisterInfo::clearVirtRegs(): Assertion
`VRegInfo[TargetRegisterInfo::index2VirtReg(i)].second == 0 && "Vreg use list
non-empty still?"' failed.</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>