------- Comment #12 from pinskia at gcc dot gnu dot org 2008-10-01 21:55 ------- This is far as reduced testcase I could get, if I remove anything that is unrelated the ICE goes away: unsigned char inUse[256]; unsigned char len[6][258]; int code[6][258]; unsigned int crc32Table[256] = { }; unsigned int getGlobalCRC (void) { } int bsLive; void bsW (int n, unsigned int v) { while (bsLive >= 8) {} } void hbAssignCodes (int * code, unsigned char * length, int minLen, int maxLen, int alphaSize) { int n, vec, i; for (n = minLen;n <= maxLen;n++) for (i = 0; i < alphaSize;i++) code[i] = vec; } void sendMTFValues (void) { int v, t, i, j, gs, ge, totc, bt, bc, iter; int nSelectors, alphaSize, minLen, maxLen, selCtr; int nGroups, nBytes; { while (1) { break; } hbAssignCodes (&code[t][0], &len[t][0], minLen, maxLen, alphaSize); unsigned char inUse16[16]; for (i = 0;i < 16;i++) if (inUse16[i]) { for (j = 0;j < 16;j++) if (inUse[i * 16 + j]) { } } } for (i = 0; i < nSelectors;i++) { } for (t = 0; t < nGroups;t++) { int curr = len[t][0]; for (i = 0; i < alphaSize;i++) while (curr < len[t][i]) { } } while (1) for (i = gs; i <= ge;i++) { } }
--- CUT --- I had to use -m64 to get the ICE. I was able to get the ICE with: -mcpu=power4 -m64 -mtune=cell -O3 -ftree-loop-linear --param ggc-min-expand=0 --param ggc-min-heapsize=0 -funroll-loops -fpreprocessed Note -fpreprocessed is really needed, I don't know why though. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2008-10-01 21:55:56 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37686