Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29274 Discussions

ifx Internal Compiler Error with -heap-arrays option

lauvergn
Beginner
1,363 Views

ifx Internal Compiler Error with -heap-arrays option

 

 

I’m compiling a library, https://github.com/lauvergn/AD_dnSVM (see the zip file) and I’m getting an Internal Compiler Error when I’m using the  -heap-arrays option with ifx. 

 

The following combinations (ifx/ifort -O/-O0 …) give:

 

ifx -O -heap-arrays : ICE (error #5633: **Internal compiler error) while compilling SRC/ADdnSVM/dnVec_m.f90

ifx -O0 -heap-arrays : Compilation OK, execution ERR (on the Test_dnS.x test)

 

ifort -O -heap-arrays : Compilation + execution OK

ifort -O0 -heap-arrays : Compilation + execution OK

ifx -O : Compilation + execution OK

ifx -O0 : Compilation + execution OK

ifort -O : Compilation + execution OK

ifort -O0 : Compilation + execution OK

 

To reproduce the errors:

make FC=ifx OPT=1 ut

or

make FC=ifx OPT=0 ut

 

I’ve tried to reduce the library size without success.

 

Thanks

 

PS: I'm using the Intel Fortran Compiler (IFX) version 2023.1.0 (I don’t have access to a more recent version) on a linux distribution.

Labels (1)
0 Kudos
1 Solution
TobiasK
Moderator
1,091 Views

@lauvergn


seems to work with the internal build that will be 2025.0:


***********************************************************************

***********OS:      Linux

***********COMPILER:   ifx

***********COMPILER_VER: ifx (IFX) 2025.0.0 20240825

***********OPTIMIZATION: 1

***********OpenMP:    1

***********INT:     4

***********LAPACK:    1

***********FFLAGS:    -O -g -traceback -heap-arrays -module OBJ/obj_ifx_opt1_omp1_lapack1_int4 -IOBJ/obj_ifx_opt1_omp1_lapack1_int4 -qopenmp -cpp -D__LAPACK="1"

***********FLIB:     -qmkl -lpthread

***********ext_obj:   _ifx_opt1_omp1_lapack1_int4

...


echo "dnVec compilation: OK"

dnVec compilation: OK

TESTING dnS module. Number of tests  :95

TESTING dnS module. Number of error(s):0

TESTING dnPoly module. Number of tests  :15

TESTING dnPoly module. Number of error(s):0

TESTING dnVec module. Number of tests  :10

TESTING dnVec module. Number of error(s):0

 done with the unitary tests



***********************************************************************

***********OS:      Linux

***********COMPILER:   gfortran

***********COMPILER_VER: GNU Fortran (Ubuntu 13.2.0-23ubuntu4) 13.2.0

***********OPTIMIZATION: 1

***********OpenMP:    1

***********INT:     4

***********FFLAGS:    -O5 -g -fbacktrace -funroll-loops -ftree-vectorize -falign-loops=16 -JOBJ/obj_gfortran_opt1_omp1_lapack1_int4 -IOBJ/obj_gfortran_opt1_omp1_lapack1_int4 -IExt_Lib/QDUtilLib/OBJ/obj_gfortran_opt1_omp1_lapack1_int4 -fopenmp -cpp -D__LAPACK="1"

***********FLIB:     -llapack -lblas

***********ext_obj:   _gfortran_opt1_omp1_lapack1_int4

***********QD_DIR:    Ext_Lib/QDUtilLib



echo "dnVec compilation: OK"

dnVec compilation: OK

TESTING dnS module. Number of tests  :95

TESTING dnS module. Number of error(s):0

TESTING dnPoly module. Number of tests  :15

TESTING dnPoly module. Number of error(s):0

TESTING dnVec module. Number of tests  :10

TESTING dnVec module. Number of error(s):0

 done with the unitary tests




View solution in original post

0 Kudos
7 Replies
Devorah_H_Intel
Moderator
1,278 Views

The latest 2024.2.1 ifx is available for download FREE from here 

0 Kudos
lauvergn
Beginner
1,133 Views

I'm afraid, the problem with the **heap-arrays** option is still present with the version 2024.2.1 (20240711).

However, the error is only at the execution. There is no more "Internal Compiler Error":

 

ifx -O -heap-arrays : Compilation OK, execution ERR (on the Test_dnS.x test)

ifx -O0 -heap-arrays : Compilation OK, execution ERR (on the Test_dnS.x test)

 

Remarks:

- the errors in Test_dnS.x are not at the same line with the option -O and -O0

- With ifort, everything is running fine.

 

 

0 Kudos
TobiasK
Moderator
1,114 Views

@lauvergn


just a clarification. By execution error you are referring to the unit tests that are run after compilation automatically by make?


0 Kudos
lauvergn
Beginner
1,105 Views

Yes. I've got an error during the run of the first test just after the compilation.

The first executable is: Test_dnS.x

 

 

0 Kudos
TobiasK
Moderator
1,092 Views

@lauvergn


seems to work with the internal build that will be 2025.0:


***********************************************************************

***********OS:      Linux

***********COMPILER:   ifx

***********COMPILER_VER: ifx (IFX) 2025.0.0 20240825

***********OPTIMIZATION: 1

***********OpenMP:    1

***********INT:     4

***********LAPACK:    1

***********FFLAGS:    -O -g -traceback -heap-arrays -module OBJ/obj_ifx_opt1_omp1_lapack1_int4 -IOBJ/obj_ifx_opt1_omp1_lapack1_int4 -qopenmp -cpp -D__LAPACK="1"

***********FLIB:     -qmkl -lpthread

***********ext_obj:   _ifx_opt1_omp1_lapack1_int4

...


echo "dnVec compilation: OK"

dnVec compilation: OK

TESTING dnS module. Number of tests  :95

TESTING dnS module. Number of error(s):0

TESTING dnPoly module. Number of tests  :15

TESTING dnPoly module. Number of error(s):0

TESTING dnVec module. Number of tests  :10

TESTING dnVec module. Number of error(s):0

 done with the unitary tests



***********************************************************************

***********OS:      Linux

***********COMPILER:   gfortran

***********COMPILER_VER: GNU Fortran (Ubuntu 13.2.0-23ubuntu4) 13.2.0

***********OPTIMIZATION: 1

***********OpenMP:    1

***********INT:     4

***********FFLAGS:    -O5 -g -fbacktrace -funroll-loops -ftree-vectorize -falign-loops=16 -JOBJ/obj_gfortran_opt1_omp1_lapack1_int4 -IOBJ/obj_gfortran_opt1_omp1_lapack1_int4 -IExt_Lib/QDUtilLib/OBJ/obj_gfortran_opt1_omp1_lapack1_int4 -fopenmp -cpp -D__LAPACK="1"

***********FLIB:     -llapack -lblas

***********ext_obj:   _gfortran_opt1_omp1_lapack1_int4

***********QD_DIR:    Ext_Lib/QDUtilLib



echo "dnVec compilation: OK"

dnVec compilation: OK

TESTING dnS module. Number of tests  :95

TESTING dnS module. Number of error(s):0

TESTING dnPoly module. Number of tests  :15

TESTING dnPoly module. Number of error(s):0

TESTING dnVec module. Number of tests  :10

TESTING dnVec module. Number of error(s):0

 done with the unitary tests




0 Kudos
lauvergn
Beginner
1,086 Views

Great. Thanks, I'll wait for this version.

0 Kudos
Reply