[Bug tree-optimization/90402] New: [9/10 Regression] ICE in slpeel_duplicate_current_defs_from_edges

asolokha at gmx dot com gcc-bugzilla@gcc.gnu.org
Thu May 9 05:48:00 GMT 2019


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

            Bug ID: 90402
           Summary: [9/10 Regression] ICE in
                    slpeel_duplicate_current_defs_from_edges
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---
            Target: x86_64-unknown-linux-gnu-gcc

1.

gcc-10.0.0-alpha20190505 snapshot (r270883) ICEs when compiling the following
testcase w/ -mavx -O3:

int kn, ha;

int
c7 (void)
{
}

void
ul (int w3)
{
  kn = c7 ();

  while (w3 < 1)
    {
      ha += !!kn ? 1 : w3;

      for (kn = 0; kn < 2; ++kn)
        {
        }

      ++w3;
    }
}

% x86_64-unknown-linux-gnu-gcc-10.0.0-alpha20190505 -mavx -O3 -c mmoxyagz.c
during GIMPLE pass: vect
mmoxyagz.c: In function 'ul':
mmoxyagz.c:9:1: internal compiler error: in
slpeel_duplicate_current_defs_from_edges, at tree-vect-loop-manip.c:979
    9 | ul (int w3)
      | ^~
0x6eeeed slpeel_duplicate_current_defs_from_edges
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190505/work/gcc-10-20190505/gcc/tree-vect-loop-manip.c:979
0xf70004 slpeel_tree_duplicate_loop_to_edge_cfg(loop*, loop*, edge_def*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190505/work/gcc-10-20190505/gcc/tree-vect-loop-manip.c:1077
0xf73d4b vect_do_peeling(_loop_vec_info*, tree_node*, tree_node*, tree_node**,
tree_node**, tree_node**, int, bool, bool)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190505/work/gcc-10-20190505/gcc/tree-vect-loop-manip.c:2609
0xf5952b vect_transform_loop(_loop_vec_info*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190505/work/gcc-10-20190505/gcc/tree-vect-loop.c:8370
0xf8668b try_vectorize_loop_1
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190505/work/gcc-10-20190505/gcc/tree-vectorizer.c:979
0xf870dd vectorize_loops()
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20190505/work/gcc-10-20190505/gcc/tree-vectorizer.c:1111

2.

When compiling the following testcase w/ -O3 -fopenmp -fno-code-hoisting
-fno-tree-copy-prop -fno-tree-dce -fno-tree-pre, gcc ICEs at
tree-vect-loop-manip.c:985 instead:

struct fq {
  int cg;
};

struct fq jr;

int
p8 (struct fq *yo, struct fq *ab)
{
  return !!yo->cg || !!ab->cg;
}

void
k6 (void)
{
  int py;
  int v3[6];

  for (py = 0; py < 6; ++py)
    v3[py] = (py % 3 != 1) + 1;

#pragma omp declare reduction (* : struct fq : p8 (&omp_out, &omp_in))
#pragma omp parallel reduction (task, * : jr)
  if (!!py)
    {
    }
}


More information about the Gcc-bugs mailing list