[Bug tree-optimization/126845] New: ICE on valid code at -O{2,3} with -fno-move-loop-stores on x86_64-linux-gnu: in create_relation_in_bb, at value-relation.cc:1217

"zhendong.su at inf dot ethz.ch via Gcc-bugs" <[email protected]>
Newsgroups gmane.comp.gcc.bugs
Message-ID <[email protected]/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126845

            Bug ID: 126845
           Summary: ICE on valid code at -O{2,3} with
                    -fno-move-loop-stores on x86_64-linux-gnu: in
                    create_relation_in_bb, at value-relation.cc:1217
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zhendong.su at inf dot ethz.ch
  Target Milestone: ---

Compiler Explorer: https://godbolt.org/z/ojz35T9qY

Note:
- fails: trunk
- works: 16.2 and earlier


[647] % gcctk -v
Using built-in specs.
COLLECT_GCC=gcctk
COLLECT_LTO_WRAPPER=/local/home/suz/suz-local/software/local/gcc-trunk/bin/../libexec/gcc/x86_64-pc-linux-gnu/17.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-trunk/configure --disable-bootstrap
--enable-checking=yes --prefix=/local/suz-local/software/local/gcc-trunk
--enable-sanitizers --enable-languages=c,c++,lto --disable-werror
--disable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 17.0.0 20260813 (experimental) [master r17-1628-gd1c12591336] (GCC)
[648] %
[648] % gcctk -O2 -fno-move-loop-stores -c small.c
during GIMPLE pass: vect
small.c: In function ‘j’:
small.c:3:6: internal compiler error: in create_relation_in_bb, at
value-relation.cc:1217
    3 | void j() {
      |      ^
0x27cea3b internal_error(char const*, ...)
        ../../gcc-trunk/gcc/diagnostic-global-context.cc:787
0xa2d9ed fancy_abort(char const*, int, char const*)
        ../../gcc-trunk/gcc/diagnostics/context.cc:1813
0x93c266 dom_oracle::create_relation_in_bb(basic_block_def*, relation_kind_t,
tree_node*, tree_node*)
        ../../gcc-trunk/gcc/value-relation.cc:1217
0x15f6d1c dom_oracle::register_transitives(basic_block_def*, value_relation
const&)
        ../../gcc-trunk/gcc/value-relation.cc:1367
0x15f6f06 dom_oracle::register_transitives(basic_block_def*, value_relation
const&)
        ../../gcc-trunk/gcc/value-relation.cc:1287
0x15f6f06 dom_oracle::record(basic_block_def*, relation_kind_t, tree_node*,
tree_node*)
        ../../gcc-trunk/gcc/value-relation.cc:1182
0x15f6f06 dom_oracle::record(basic_block_def*, relation_kind_t, tree_node*,
tree_node*)
        ../../gcc-trunk/gcc/value-relation.cc:1162
0x15f3450 relation_oracle::record(gimple*, relation_kind_t, tree_node*,
tree_node*)
        ../../gcc-trunk/gcc/value-relation.cc:1118
0xe2e812 fur_depend::register_relation(gimple*, relation_kind_t, tree_node*,
tree_node*)
        ../../gcc-trunk/gcc/gimple-range-fold.cc:181
0xe353b4 fold_using_range::range_of_range_op(vrange&, gimple_range_op_handler&,
fur_source&)
        ../../gcc-trunk/gcc/gimple-range-fold.cc:861
0xe36532 fold_using_range::fold_stmt(vrange&, gimple*, fur_source&, tree_node*)
        ../../gcc-trunk/gcc/gimple-range-fold.cc:698
0xe20a54 gimple_ranger::fold_range_internal(vrange&, gimple*, tree_node*)
        ../../gcc-trunk/gcc/gimple-range.cc:303
0xe20a54 gimple_ranger::prefill_stmt_dependencies(tree_node*)
        ../../gcc-trunk/gcc/gimple-range.cc:494
0xe212ca gimple_ranger::range_of_stmt(vrange&, gimple*, tree_node*)
        ../../gcc-trunk/gcc/gimple-range.cc:363
0xe24403 gimple_ranger::range_of_stmt(vrange&, gimple*, tree_node*)
        ../../gcc-trunk/gcc/gimple-range.cc:315
0xe24403 gimple_ranger::range_of_expr(vrange&, tree_node*, gimple*)
        ../../gcc-trunk/gcc/gimple-range.cc:124
0x26adfff vect_get_range_info(tree_node*, generic_wide_int<wide_int_storage>*,
generic_wide_int<wide_int_storage>*)
        ../../gcc-trunk/gcc/tree-vect-patterns.cc:73
0x26b53c6 vect_determine_precisions_from_range
        ../../gcc-trunk/gcc/tree-vect-patterns.cc:6965
0x26b6545 vect_determine_stmt_precisions(vec_info*, _stmt_vec_info*)
        ../../gcc-trunk/gcc/tree-vect-patterns.cc:7384
0x26b6992 vect_determine_precisions(vec_info*)
        ../../gcc-trunk/gcc/tree-vect-patterns.cc:7439
/local/home/suz/suz-local/software/local/gcc-trunk/bin/../libexec/gcc/x86_64-pc-linux-gnu/17.0.0/cc1
-quiet -I /usr/local/include -I /local/suz-local/software/local/include
-imultiarch x86_64-linux-gnu -iprefix
/local/home/suz/suz-local/software/local/gcc-trunk/bin/../lib/gcc/x86_64-pc-linux-gnu/17.0.0/
small.c -quiet -dumpbase small.c -dumpbase-ext .c -mtune=generic -march=x86-64
-O2 -fno-move-loop-stores -o /tmp/ccTFTRng.s
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
[649] %
[649] % cat small.c
int a, c, d, e, **f, *g, h;
static int i() {}
void j() {
  do {
    f = &g;
    c = 1 + (1 >> a);
    if (2 + c >= c - a)
      goto k;
    g = &c;
  } while (i());
  c = a + c + c;
k:
  e = **f;
  for (int b = 0; b < 3; b++)
    h = d = d ^ e;
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.