[Bug tree-optimization/99777] New: ICE in build2, at tree.c:4869 with -O3

vsevolod.livinskij at frtk dot ru gcc-bugzilla@gcc.gnu.org
Thu Mar 25 22:31:30 GMT 2021


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

            Bug ID: 99777
           Summary: ICE in build2, at tree.c:4869 with -O3
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vsevolod.livinskij at frtk dot ru
  Target Milestone: ---

The error is not specific to skylake-avx512, I have a reproducer that shows it.

Reproducer:
#include <algorithm>

extern int var_142;
extern int a, c;
long h;
unsigned long long e;
signed char d;
extern short arr_323[][7][5][30];

void test(long long b,
          short f[][17][25][22][20]) {
  for (char i = 0; i < 7; i += 3)
    for (unsigned char l = e; l < 5; l += 2) {
      if (std::max((long long)0, std::min((long long)7, b)))
        for (bool j = 0; j < 1; j = b) {
          for (unsigned k = d; k < 20; k++)
            h = f[0][i][l][b][k];
          for (int m = 0; m < 5; m++)
            arr_323[c][i][l][m] = 0;
        }
      for (int n = 0; n < 4; n += a)
        var_142 = n;
    }
}

Error:
>$ g++ -O3 -march=skylake-avx512 func.cpp -c
during GIMPLE pass: lim
func.cpp: In function ‘void test(long long int, short int
(*)[17][25][22][20])’:
func.cpp:10:6: internal compiler error: in build2, at tree.c:4869
   10 | void test(long long b,
      |      ^~~~
0x85386f build2(tree_code, tree_node*, tree_node*, tree_node*)
        gcc/gcc_src/gcc/tree.c:4869
0xddb96f build2_loc
        gcc/gcc_src/gcc/tree.h:4407
0xddb96f fold_build2_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
        gcc/gcc_src/gcc/fold-const.c:13736
0xde8de3 extract_muldiv_1
        gcc/gcc_src/gcc/fold-const.c:6976
0xdea422 extract_muldiv
        gcc/gcc_src/gcc/fold-const.c:6662
0xdea422 extract_muldiv
        gcc/gcc_src/gcc/fold-const.c:6662
0xdea422 extract_muldiv
        gcc/gcc_src/gcc/fold-const.c:6662
0xdd6bb1 fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
        gcc/gcc_src/gcc/fold-const.c:11486
0xddb94d fold_build2_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
        gcc/gcc_src/gcc/fold-const.c:13734
0x1c3b096 aff_combination_add_elt(aff_tree*, tree_node*,
generic_wide_int<fixed_wide_int_storage<192> > const&)
        gcc/gcc_src/gcc/tree-affine.c:187
0x1c3b3d5 aff_combination_add(aff_tree*, aff_tree*)
        gcc/gcc_src/gcc/tree-affine.c:215
0x124fc0f mem_refs_may_alias_p
        gcc/gcc_src/gcc/tree-ssa-loop-im.c:1718
0x124fc83 refs_independent_p
        gcc/gcc_src/gcc/tree-ssa-loop-im.c:2703
0x12502b4 ref_indep_loop_p
        gcc/gcc_src/gcc/tree-ssa-loop-im.c:2764
0x1255ff4 can_sm_ref_p
        gcc/gcc_src/gcc/tree-ssa-loop-im.c:2832
0x1255ff4 find_refs_for_sm
        gcc/gcc_src/gcc/tree-ssa-loop-im.c:2853
0x1255ff4 store_motion_loop
        gcc/gcc_src/gcc/tree-ssa-loop-im.c:2889
0x1255ddc store_motion_loop
        gcc/gcc_src/gcc/tree-ssa-loop-im.c:2896
0x1255ddc store_motion_loop
        gcc/gcc_src/gcc/tree-ssa-loop-im.c:2896
0x1258262 do_store_motion
        gcc/gcc_src/gcc/tree-ssa-loop-im.c:2911

gcc version 11.0.1 20210323 (6b1f841ce0ccf30eda7896ba5ab0aa94c72307b2) (GCC)


More information about the Gcc-bugs mailing list