SPEC2000 applu.f generates internal compiler error

Bug #1320965 reported by frank smith
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linaro GCC
New
Undecided
Kugan Vivekanandarajah
gcc
Invalid
Medium

Bug Description

Using Linaro's 2014.04 release of the arm-linux-gnueabihf compiler I get the following failure when compiling applu.f which is part of the SPEC2000 floating-point suite.

/opt/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/arm-linux-gnueabihf-gfortran -c -o applu.o -static -O3 -march=armv7-a -mfpu=vfpv3-d16 -fno-use-linker-plugin -flto -marm -mfloat-abi=hard -ffast-math -ftree-vectorize -floop-interchange -g -static applu.f

GNU MP: Cannot allocate memory (size=4202504)
applu.f: In function 'setbv_':
applu.f:331:0: internal compiler error: Aborted
       subroutine setbv
 ^
no stack trace because unwind library not available
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://bugs.launchpad.net/gcc-linaro> for instructions.
specmake: *** [applu.o] Error 1

Revision history for this message
frank smith (smithfra) wrote :

I was able to build all of SPEC200 CINT2000 and all of SPEC2000 CFP2000 with the exception of applu.f in the floating point suite.

Revision history for this message
frank smith (smithfra) wrote :

I re-built SPEC cpu2000 with the same flags as above using the 2014.05 release of gcc-linaro-arm-linux-gnueabihf (GCC 4.9) and Applu compiled with no problems.

Changed in gcc-linaro:
assignee: nobody → Kugan Vivekanandarajah (kugan-vivekanandarajah)
Revision history for this message
Kugan Vivekanandarajah (kugan-vivekanandarajah) wrote :

I can not reproduce the ICE, but it goes into infinite loop in
isl_vec_mat_product,
....
 while ((off = row_first_non_zero(left->row+first,
     left->n_row-first, row)) != -1) {
....

I can also reproduce this in trunk with cloog-0.18.1.tar.gz, isl-0.12.2.tar.bz2, gmp-4.3.2.tar.bz2, mpc-0.8.1.tar.gz and mpfr-2.4.2.tar.bz2.

seems to be a graphite issue and the mininmal argument thar reproduces this is -O3 -floop-interchange. -floop-interchange part of the graphite is what is casuing the trouble.

Revision history for this message
Kugan Vivekanandarajah (kugan-vivekanandarajah) wrote :

minimal Fortran code to reproduce should contain subroutine setbv and exact.

Revision history for this message
In , Kuganv (kuganv) wrote :

arm-linux-gnueabihf-gfortran -c -floop-interchange applu.f goes into infinite loop.

It goes into infinite loop in
isl_vec_mat_product,
....
 while ((off = row_first_non_zero(left->row+first,
     left->n_row-first, row)) != -1) {
....

Happens in trunk with cloog-0.18.1.tar.gz, isl-0.12.2.tar.bz2, gmp-4.3.2.tar.bz2, mpc-0.8.1.tar.gz and mpfr-2.4.2.tar.bz2.

minimal Fortran code to reproduce this should contain subroutine setbv and exact.

gcc -v output:
arm-none-linux-gnueabi-gfortran -v
Using built-in specs.
COLLECT_GCC=/home/kugan/work/builds/gcc-fsf-trunk/tools/bin/arm-none-linux-gnueabi-gfortran
COLLECT_LTO_WRAPPER=/home/kugan/work/builds/gcc-fsf-trunk/tools/libexec/gcc/arm-none-linux-gnueabi/4.10.0/lto-wrapper
Target: arm-none-linux-gnueabi
Configured with: /home/kugan/work/sources/gcc-fsf/trunk/configure --target=arm-none-linux-gnueabi --prefix=/home/kugan/work/builds/gcc-fsf-trunk/tools --with-sysroot=/home/kugan/work/builds/gcc-fsf-trunk/sysroot-arm-none-linux-gnueabi --disable-libssp --disable-libgomp --disable-libmudflap --enable-languages=c,c++,fortran --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=softfp --with-thumb
Thread model: posix
gcc version 4.10.0 20140710 (experimental) (GCC)

Revision history for this message
In , Dominiq (dominiq) wrote :

> minimal Fortran code to reproduce this should contain subroutine setbv and exact.

Such code, or better, a reduced reproducer, should be provided. From comment 0, it seems that this PR a graphite problem on arm processor, thus not a gfortran bug.

Changed in gcc:
importance: Unknown → Medium
status: Unknown → Incomplete
Revision history for this message
In , Dominiq (dominiq) wrote :

No reproducer, no feedback for more than four months. Closing as INVALID.

Changed in gcc:
status: Incomplete → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.