Recent trunk crashes on the following testcase: > gfortran -c -floop-block -O3 bug.f90 MODULE util INTEGER, PARAMETER :: int_4=4 INTERFACE sort MODULE PROCEDURE sort_int_4v END INTERFACE CONTAINS SUBROUTINE sort_int_4v ( arr, n, index ) INTEGER(KIND=int_4), INTENT(INOUT) :: arr(1:n) INTEGER, INTENT(OUT) :: INDEX(1:n) DO i = 1, n INDEX(i) = i END DO 1 IF (ir-l<m) THEN DO j = l + 1, ir DO i = j - 1, 1, -1 IF (arr(i)<=a) GO TO 2 arr(i+1) = arr(i) INDEX(i+1) = INDEX(i) END DO 2 arr(i+1) = a END DO END IF END SUBROUTINE sort_int_4v SUBROUTINE create_destination_list(list) INTEGER, DIMENSION(:, :, :), POINTER :: list INTEGER :: icpu, ncpu, stat, ultimate_max INTEGER, ALLOCATABLE, DIMENSION(:) :: index, sublist ultimate_max=7 ALLOCATE(INDEX(ultimate_max),STAT=stat) CALL t(stat==0) ALLOCATE(sublist(ultimate_max),STAT=stat) DO icpu=0,ncpu-1 CALL sort(sublist,ultimate_max,index) list(1,:,icpu)=sublist list(2,:,icpu)=0 ENDDO END SUBROUTINE create_destination_list END MODULE
with the following trace #0 0x0000000000936ad4 in expr_invariant_in_loop_p (loop=0x7faaf9409220, expr=0x7faaf939ef20) at /data03/vondele/gcc_trunk/gcc/gcc/gimple.h:1149 #1 0x0000000000ce643f in evolution_function_is_invariant_rec_p (chrec=0x2, loopnum=4) at /data03/vondele/gcc_trunk/gcc/gcc/tree-chrec.c:1009 #2 0x0000000000ce6337 in evolution_function_is_invariant_rec_p (chrec=0x7faaf941aaf0, loopnum=4) at /data03/vondele/gcc_trunk/gcc/gcc/tree-chrec.c:1028 #3 0x0000000000ce6373 in evolution_function_is_invariant_rec_p (chrec=0x7faaf941ab28, loopnum=4) at /data03/vondele/gcc_trunk/gcc/gcc/tree-chrec.c:1033 #4 0x0000000000ce8318 in chrec_convert_1 (type=0x7faaf947b000, chrec=0x7faaf93efd80, at_stmt=0x0, use_overflow_semantics=1 '\001') at /data03/vondele/gcc_trunk/gcc/gcc/tree-chrec.c:1050 #5 0x00000000008e43e3 in analyze_scalar_evolution_1 (loop=0x7faaf9409220, var=0x7faaf9415c30, res=0x7faaf93960f0) at /data03/vondele/gcc_trunk/gcc/gcc/tree-scalar-evolution.c:1804 #6 0x00000000008e5047 in analyze_scalar_evolution (loop=0x7faaf9409220, var=0x7faaf9415c30) at /data03/vondele/gcc_trunk/gcc/gcc/tree-scalar-evolution.c:1950 #7 0x00000000008e6e88 in interpret_rhs_expr (loop=0x7faaf9409220, at_stmt=0x0, type=0x7faaf947b000, rhs1=0x7faaf9415c30, code=MULT_EXPR, rhs2=0x7faaf946a410) at /data03/vondele/gcc_trunk/gcc/gcc/tree-scalar-evolution.c:1768 #8 0x00000000008e43e3 in analyze_scalar_evolution_1 (loop=0x7faaf9409220, var=0x7faaf941d000, res=0x7faaf93960f0) at /data03/vondele/gcc_trunk/gcc/gcc/tree-scalar-evolution.c:1804 #9 0x00000000008e5047 in analyze_scalar_evolution (loop=0x7faaf9409220, var=0x7faaf941d000) at /data03/vondele/gcc_trunk/gcc/gcc/tree-scalar-evolution.c:1950 #10 0x00000000008e6127 in analyze_scalar_evolution_in_loop (wrto_loop=0x7faaf9409220, use_loop=0x7faaf9409220, version=0x0, folded_casts=0x7fff5174462f "") at /data03/vondele/gcc_trunk/gcc/gcc/tree-scalar-evolution.c:2038 #11 0x00000000008e628d in simple_iv (wrto_loop=0x7faaf9409220, use_loop=0x2, op=0x8b, iv=0x7fff51744680, allow_nonconstant_step=0 '\0') at /data03/vondele/gcc_trunk/gcc/gcc/tree-scalar-evolution.c:3132 #12 0x000000000088c29b in dr_analyze_innermost (dr=0x148c8a0) at /data03/vondele/gcc_trunk/gcc/gcc/tree-data-ref.c:794 #13 0x000000000088c97f in create_data_ref (nest=0x7faaf94092a8, memref=0x7faaf93741f8, stmt=0x7faaf9389410, is_read=0 '\0') at /data03/vondele/gcc_trunk/gcc/gcc/tree-data-ref.c:964 #14 0x000000000088d5e6 in graphite_find_data_references_in_stmt (nest=0x7faaf94092a8, stmt=0x7faaf9389410, datarefs=0x7fff51744880) at /data03/vondele/gcc_trunk/gcc/gcc/tree-data-ref.c:4262 #15 0x0000000000c7f337 in scopdet_basic_block_info (bb=0x7faaf9412ea0, outermost_loop=0x7faaf94092a8, scops=0x7fff517449f8, type=GBB_LOOP_SING_EXIT_HEADER) at /data03/vondele/gcc_trunk/gcc/gcc/graphite-scop-detection.c:285 #16 0x0000000000c7fde2 in build_scops_1 (current=0x7faaf9412ea0, outermost_loop=0x7faaf94092a8, scops=0x7fff517449f8, loop=0x7faaf9409330) at /data03/vondele/gcc_trunk/gcc/gcc/graphite-scop-detection.c:750 #17 0x0000000000c7fac4 in scopdet_basic_block_info (bb=0x7faaf938dc98, outermost_loop=0x7faaf94092a8, scops=0x7fff51744b68, type=<value optimized out>) at /data03/vondele/gcc_trunk/gcc/gcc/graphite-scop-detection.c:636 #18 0x0000000000c7fde2 in build_scops_1 (current=0x7faaf938dc98, outermost_loop=0x7faaf94092a8, scops=0x7fff51744b68, loop=0x7faaf9409330) at /data03/vondele/gcc_trunk/gcc/gcc/graphite-scop-detection.c:750 #19 0x0000000000c7fa80 in scopdet_basic_block_info (bb=0x7faaf9417340, outermost_loop=0x7faaf94092a8, scops=0x7fff51744cd8, type=<value optimized out>) at /data03/vondele/gcc_trunk/gcc/gcc/graphite-scop-detection.c:697 #20 0x0000000000c7fde2 in build_scops_1 (current=0x7faaf9417340, outermost_loop=0x7faaf94092a8, scops=0x7fff51744cd8, loop=0x7faaf9409330) at /data03/vondele/gcc_trunk/gcc/gcc/graphite-scop-detection.c:750 #21 0x0000000000c7f7a3 in scopdet_basic_block_info (bb=0x7faaf9412e38, outermost_loop=0x7faaf94092a8, scops=0x7fff51744e48, type=<value optimized out>) at /data03/vondele/gcc_trunk/gcc/gcc/graphite-scop-detection.c:478 #22 0x0000000000c7fde2 in build_scops_1 (current=0x7faaf9412e38, outermost_loop=0x7faaf94092a8, scops=0x7fff51744e48, loop=0x7faaf94092a8) at /data03/vondele/gcc_trunk/gcc/gcc/graphite-scop-detection.c:750 #23 0x0000000000c7fac4 in scopdet_basic_block_info (bb=0x7faaf94a0ea0, outermost_loop=0x7faaf94092a8, scops=0x7fff51744fb8, type=<value optimized out>) at /data03/vondele/gcc_trunk/gcc/gcc/graphite-scop-detection.c:636 #24 0x0000000000c7fde2 in build_scops_1 (current=0x7faaf94a0ea0, outermost_loop=0x7faaf94092a8, scops=0x7fff51744fb8, loop=0x7faaf94092a8) at /data03/vondele/gcc_trunk/gcc/gcc/graphite-scop-detection.c:750 #25 0x0000000000c7fa80 in scopdet_basic_block_info (bb=0x7faaf94a0b60, outermost_loop=0x7faaf94092a8, scops=0x7fff51745178, type=<value optimized out>) at /data03/vondele/gcc_trunk/gcc/gcc/graphite-scop-detection.c:697 #26 0x0000000000c7fde2 in build_scops_1 (current=0x7faaf94a0b60, outermost_loop=0x7faaf94092a8, scops=0x7fff51745178, loop=0x7faaf94092a8) at /data03/vondele/gcc_trunk/gcc/gcc/graphite-scop-detection.c:750 #27 0x0000000000c8020a in build_scops (scops=0x7fff51745230) at /data03/vondele/gcc_trunk/gcc/gcc/graphite-scop-detection.c:1329 #28 0x0000000000c71e61 in graphite_transform_loops () at /data03/vondele/gcc_trunk/gcc/gcc/graphite.c:270 #29 0x0000000000948967 in graphite_transforms () at /data03/vondele/gcc_trunk/gcc/gcc/tree-ssa-loop.c:296 #30 0x00000000007bd5af in execute_one_pass (pass=0x1293780) at /data03/vondele/gcc_trunk/gcc/gcc/passes.c:1573 #31 0x00000000007bd8a5 in execute_pass_list (pass=0x1293780) at /data03/vondele/gcc_trunk/gcc/gcc/passes.c:1628 #32 0x00000000007bd8bd in execute_pass_list (pass=0x1293720) at /data03/vondele/gcc_trunk/gcc/gcc/passes.c:1629 #33 0x00000000007bd8bd in execute_pass_list (pass=0x1293480) at /data03/vondele/gcc_trunk/gcc/gcc/passes.c:1629 #34 0x00000000007bd8bd in execute_pass_list (pass=0x1292ac0) at /data03/vondele/gcc_trunk/gcc/gcc/passes.c:1629 -- Summary: [4.6 Regression] ICE in expr_invariant_in_loop_p Product: gcc Version: 4.6.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: Joost dot VandeVondele at pci dot uzh dot ch http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45758