No, I wasn't having a management lobotomy moment. If the target's registers have no subregisters, SubUsed is false and the assert gets tripped.<br><br>Ok, back to the original question: What was the original intent in this code (lines 186-193 in lib/CodeGen/RegisterScavenging.cpp)?<br>
<br><br>-scooter<br><br><div class="gmail_quote">On Thu, Feb 25, 2010 at 7:00 PM, Scott Michel <span dir="ltr"><<a href="mailto:scooter.phd@gmail.com">scooter.phd@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Ugh. Management lobotomy kicked in. Need to RTFC better.<div><div></div><div class="h5"><br><br><div class="gmail_quote">On Thu, Feb 25, 2010 at 6:18 PM, Scott Michel <span dir="ltr"><<a href="mailto:scooter.phd@gmail.com" target="_blank">scooter.phd@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">There's an assert at line 192, lib/CodeGen/RegisterScavenging.cpp that appears to get tripped on targets that don't have subregisters defined:<br>

<br><font face="courier new,monospace">        bool SubUsed = false;<br>
        for (const unsigned *SubRegs = TRI->getSubRegisters(Reg);<br>             unsigned SubReg = *SubRegs; ++SubRegs)<br>          if (isUsed(SubReg)) {<br>            SubUsed = true;<br>            break;<br>          }<br>


        assert(SubUsed && "Using an undefined register!");<br><br><font face="arial,helvetica,sans-serif">CellSPU does not define any subregisters; consequently, SubUsed will always be false and trip the assert. What's the intended behavior (before I submit a bug report)?<br>


<br><br>-scooter<br></font></font>
</blockquote></div><br>
</div></div></blockquote></div><br>