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;
}