[LLVMbugs] [Bug 8620] New: Assertion `false && "Ran out of registers during register allocation!"' failed.

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Nov 15 16:09:15 PST 2010


           Summary: Assertion `false && "Ran out of registers during
                    register allocation!"' failed.
           Product: new-bugs
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: regehr at cs.utah.edu
                CC: llvmbugs at cs.uiuc.edu, chenyang at cs.utah.edu

Filing this separately from PR8362, PR5010, PR4668 since those all involve
inline assembly, and this one doesn't.  Apologies if that wasn't right.

[regehr at n6 ~]$ clang -v

clang version 2.9 (trunk 119288)
Target: i386-pc-linux-gnu
Thread model: posix

[regehr at n6 ~]$ clang -c -w -Os small.c

clang: RegAllocLinearScan.cpp:1192:
Assertion `false && "Ran out of registers during register allocation!"' failed.
0  clang 0x09400018
Stack dump:
0.    Program arguments:
/mnt/local/randomtest/compiler-install/llvm-gcc-r119288-install/bin/clang -cc1
-triple i386-pc-linux-gnu -emit-obj -disable-free -main-file-name small.c
-mrelocation-model static -mdisable-fp-elim -masm-verbose -mconstructor-aliases
-target-cpu pentium4 -target-linker-version 2.20.1 -resource-dir
-Os -w -ferror-limit 19 -fmessage-length 88 -fgnu-runtime
-fdiagnostics-show-option -fcolor-diagnostics -o small.o -x c small.c 
1.    <eof> parser at end of file
2.    Code generation
3.    Running pass 'Function Pass Manager' on module 'small.c'.
4.    Running pass 'Linear Scan Register Allocator' on function '@int641'
clang: error: unable to execute command: Aborted
clang: error: clang frontend command failed due to signal 1 (use -v to see

[regehr at n6 ~]$ cat small.c

static unsigned char
foo (signed char si1, unsigned char si2)
  return si1 + si2;

static unsigned char
bar (signed char left, int right)
  return left || right || right ? left : left >> right;

static long long
baz (long long si1, long long si2)
  return si2 || si1 && si2 ? si1 : (si1 % si2);

static unsigned char
bux (unsigned char ui1, unsigned char ui2)
  return ui1 + ui2;

static unsigned char
biz (unsigned short left, int right)
  return right < right >= left >> right ? : left << right;

volatile unsigned char g_5[4][4][4][1][1][1][1] = {

unsigned long long g_6;
unsigned char g_393[3][4] = {

int641 (void)
  unsigned char l_4[6][10];
  unsigned char l_20[10][4];
  unsigned char *l = &g_393[1][2];
  short l_399[3];
  int i, j;
  for (j = 0; j < 10; j++)
    l_4[i][j] = 0;
  l_399[i] = 0;
  *l |= baz (+l_4[5][6]
         && g_5[0][0][2][0][0][0][0] > 1,
         g_6) >
    foo (biz
     (bar (bux (g_6, l_4[5][6]), 0), (l_20[3][1], 0) || g_6), l_20[3][1]);
  *l =
    safe (l_399[2] & l_4[5][6]),
    l_399[2] > !l_20[5][1] <= l_399[2] >= l_399[1];

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