[Bug tree-optimization/70754] New: ICE during predictive commoning

vp at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Apr 21 15:41:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70754

            Bug ID: 70754
           Summary: ICE during predictive commoning
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vp at gcc dot gnu.org
  Target Milestone: ---

The following fortran testcase (reduced from a large program) at -Ofast causes 
an ICE for aarch64-none-linux-gnu during predictive commoning. This is
reproducible with version 5.3, 6 and trunk.

$ cat y.f90
module m
  implicit none
  private
  save

  integer, parameter, public :: &
    ii4          = selected_int_kind(6), &
    rr8          = selected_real_kind(13)

  integer (ii4), dimension(40,40,199), public :: xyz
  public :: foo
contains
  subroutine foo(a)
    real (rr8), dimension(40,40), intent(out) :: a
    real (rr8), dimension(40,40) :: b
    integer (ii4), dimension(40,40) :: c
    integer  i, j

    do i=1,20
      b(i,j) = 123 * a(i,j) + 34 * a(i,j+1) &
             + 34 * a(i,j-1) + a(i+1,j+1) &
             + a(i+1,j-1) + a(i-1,j+1) &
             + a(i-1,j-1)
      c(i,j) = 123
    end do

    where ((xyz(:,:,2) /= 0) .and. (c /= 0))
      a = b/real(c)
    elsewhere
      a = 456
    endwhere
 end subroutine foo
end module m


$ gfortran -v -c -Ofast y.f90
Using built-in specs.
COLLECT_GCC=gfortran
Target: aarch64-none-linux-gnu
Configured with: /tmp/native-aarch64-none-linux-gnu/build/src/gcc/configure
--disable-bootstrap
--with-isl=/tmp/native-aarch64-none-linux-gnu/build/build-native-aarch64-none-linux-gnu/host-tools
--with-cloog=/tmp/native-aarch64-none-linux-gnu/build/build-native-aarch64-none-linux-gnu/host-tools
--with-build-sysroot=/tmp/native-aarch64-none-linux-gnu/build/build-native-aarch64-none-linux-gnu/install/glibc
--build=aarch64-none-linux-gnu --host=aarch64-none-linux-gnu
--target=aarch64-none-linux-gnu --prefix=/ --enable-languages=c,c++,fortran
--enable-plugin
--with-gmp=/tmp/native-aarch64-none-linux-gnu/build/build-native-aarch64-none-linux-gnu/host-tools
--with-mpfr=/tmp/native-aarch64-none-linux-gnu/build/build-native-aarch64-none-linux-gnu/host-tools
--with-mpc=/tmp/native-aarch64-none-linux-gnu/build/build-native-aarch64-none-linux-gnu/host-tools
--with-gnu-ld --with-plugin-ld=ld --disable-libsanitizer --disable-werror
Thread model: posix
gcc version 5.3.1 20160415 
COLLECT_GCC_OPTIONS='-v' '-c' '-Ofast' '-mlittle-endian' '-mabi=lp64'
 /usr/bin/../libexec/gcc/aarch64-none-linux-gnu/5.3.1/f951 y.f90 -quiet
-dumpbase y.f90 -mlittle-endian -mabi=lp64 -auxbase y -Ofast -version
-fintrinsic-modules-path
/usr/bin/../lib/gcc/aarch64-none-linux-gnu/5.3.1/finclude -o /tmp/ccIYeMBK.s
GNU Fortran version 5.3.1 20160415 (aarch64-none-linux-gnu)
        compiled by GNU C version 4.8.4, GMP version 4.3.2, MPFR version 3.0.0,
MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU Fortran2008 version 5.3.1 20160415 (aarch64-none-linux-gnu)
        compiled by GNU C version 4.8.4, GMP version 4.3.2, MPFR version 3.0.0,
MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
y.f90:13:0:

   subroutine foo(a)
 ^ 
internal compiler error: 291) version 5.oot_vars, at tree-predcom.c:1495
0xa8dae3 initialize_root_vars 
       
/tmp/native-aarch64-none-linux-gnu/build/src/gcc/gcc/tree-predcom.c:1495
0xa8dae3 initialize_root
       
/tmp/native-aarch64-none-linux-gnu/build/src/gcc/gcc/tree-predcom.c:1542
0xa8dae3 execute_pred_commoning_chain
       
/tmp/native-aarch64-none-linux-gnu/build/src/gcc/gcc/tree-predcom.c:1756
0xa8dae3 execute_pred_commoning
       
/tmp/native-aarch64-none-linux-gnu/build/src/gcc/gcc/tree-predcom.c:1822
0xa8f583 tree_predictive_commoning_loop
       
/tmp/native-aarch64-none-linux-gnu/build/src/gcc/gcc/tree-predcom.c:2585
0xa90b63 tree_predictive_commoning()
       
/tmp/native-aarch64-none-linux-gnu/build/src/gcc/gcc/tree-predcom.c:2612
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.


More information about the Gcc-bugs mailing list