[Bug rtl-optimization/56348] New: internal compiler error in assign_by_spills with -m32 -fPIC -msse2

dnovillo at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Feb 15 16:49:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56348

             Bug #: 56348
           Summary: internal compiler error in assign_by_spills with -m32
                    -fPIC -msse2
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: dnovillo@gcc.gnu.org
                CC: vmakarov@redhat.com
              Host: x86_64-unknown-linux-gnu
            Target: x86_64-unknown-linux-gnu
             Build: x86_64-unknown-linux-gnu


With trunk at rev 195930 I am running into the following ICE while building
SuiteSparse v3.4.0 (http://www.cise.ufl.edu/research/sparse/SuiteSparse/) with
-m32 and -fPIC.

Reduced test case:
+ ./cc1 min.c -quiet -m32 -O2 -fPIC -mfpmath=sse -msse2
min.c: In function 'cholmod_l_drop':
min.c:34:1: internal compiler error: in assign_by_spills, at lra-assigns.c:1262
 }
 ^
0x7f0c54 assign_by_spills
        gcc/lra-assigns.c:1262
0x7f1c53 lra_assign()
        gcc/lra-assigns.c:1419
0x7ed914 lra(_IO_FILE*)
        gcc/lra.c:2307
0x7b41e0 do_reload
        gcc/ira.c:4614
0x7b41e0 rest_of_handle_reload
        gcc/ira.c:4726
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

$ cat min.c
typedef unsigned int size_t;

extern double fabs (double __x) __attribute__ ((__nothrow__, __leaf__))
  __attribute__ ((__const__));

typedef struct cholmod_sparse_struct
{
  size_t ncol;
  void *p;
} cholmod_sparse;

int cholmod_l_reallocate_sparse (size_t, cholmod_sparse *, void *);

int
cholmod_l_drop (double tol, cholmod_sparse * A)
{
  double aij;
  double *Ax;
  long long *Ap, *Ai, *Anz;
  long long packed, i, j, nrow, ncol, p, pend, nz, values;
  Ap = A->p;
  ncol = A->ncol;
  nz = 0;
  for (j = 0; j < ncol; j++)
    for (; p < pend; p++)
      {
        i = Ai[p];
        aij = Ax[p];
        if (i <= j && (fabs (aij) > tol || ((aij) != (aij))))
          nz++;
      }
  Ap[ncol] = nz;
  cholmod_l_reallocate_sparse (nz, A, 0);
}



More information about the Gcc-bugs mailing list