[LLVMbugs] [Bug 2084] New: Regalloc should deal with running out of registers more gracefully

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Fri Feb 22 13:02:19 PST 2008


http://llvm.org/bugs/show_bug.cgi?id=2084

           Summary: Regalloc should deal with running out of registers more
                    gracefully
           Product: new-bugs
           Version: unspecified
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: sharparrow1 at yahoo.com
                CC: llvmbugs at cs.uiuc.edu


Testcase (note that it is impossible to allocate 8 general regs to an asm on
x86):

int a() {int a,b,c,d,di,si,bp,sp;; asm volatile ("%0 %1 %2 %3 %4 %5 %6 %7" :
"=r"(a), "=r"(b), "=r"(c), "=r"(d), "=r"(di), "=r"(si), "=r"(bp), "=r"(sp) : );
return a;}

gcc gives the following error:
<stdin>: In function ‘a’:
<stdin>:1: error: can't find a register in class ‘GENERAL_REGS’ while
reloading ‘asm’

llc -regalloc=linearscan hangs.

llc -regalloc=local silently puts multiple outputs into the same register.

llc -regalloc=simple gives the following assertion:
llc: /home/eli/llvm/lib/CodeGen/RegAllocSimple.cpp:128: unsigned
int<unnamed>::RegAllocSimple::getFreeReg(unsigned int): Assertion `RI+regIdx !=
RE && "Not enough registers!"' failed.

llc -regalloc=bigblock silently puts multiple outputs into the same register.


-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list