[LLVMdev] RegisterScavenging on targets without subregisters

Scott Michel scooter.phd at gmail.com
Thu Feb 25 18:18:14 PST 2010


There's an assert at line 192, lib/CodeGen/RegisterScavenging.cpp that
appears to get tripped on targets that don't have subregisters defined:

        bool SubUsed = false;
        for (const unsigned *SubRegs = TRI->getSubRegisters(Reg);
             unsigned SubReg = *SubRegs; ++SubRegs)
          if (isUsed(SubReg)) {
            SubUsed = true;
            break;
          }
        assert(SubUsed && "Using an undefined register!");

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)?


-scooter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100225/aef5c1be/attachment.html>


More information about the llvm-dev mailing list