https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108970
Bug ID: 108970 Summary: [13 Regression] ICE in vect_do_peeling, at tree-vect-loop-manip.cc:2971, or ICE in dump_printf_loc, at dumpfile.cc:1359 Product: gcc Version: 13.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: --- 1. gcc 13.0.1 20230226 snapshot (g:e6d39f68d03c46637ca6e1bede3d28eae6278df3) ICEs when compiling the following testcase w/ -O1 -ftree-loop-vectorize -fsave-optimization-record -fno-tree-dce -fno-tree-scev-cprop: int m; __attribute__ ((noinline, returns_twice)) void empty (void) { } void foo (void) { while (m < 1) { empty (); ++m; } } % gcc-13 -O1 -ftree-loop-vectorize -fsave-optimization-record -fno-tree-dce -fno-tree-scev-cprop -c ionf2mqq.c during GIMPLE pass: vect ionf2mqq.c: In function 'foo': ionf2mqq.c:9:1: internal compiler error: in vect_do_peeling, at tree-vect-loop-manip.cc:2971 9 | foo (void) | ^~~ 0x119566f vect_do_peeling(_loop_vec_info*, tree_node*, tree_node*, tree_node**, tree_node**, tree_node**, int, bool, bool, tree_node**) /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/tree-vect-loop-manip.cc:2971 0x1187e99 vect_transform_loop(_loop_vec_info*, gimple*) /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/tree-vect-loop.cc:10807 0x11c6ca0 vect_transform_loops /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/tree-vectorizer.cc:1007 0x11c72de try_vectorize_loop_1 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/tree-vectorizer.cc:1153 0x11c72de try_vectorize_loop /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/tree-vectorizer.cc:1183 0x11c7694 execute /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/tree-vectorizer.cc:1299 2. Omitting -fsave-optimization-record yields the following instead: % gcc-13 -O1 -ftree-loop-vectorize -fno-tree-dce -fno-tree-scev-cprop -c ionf2mqq.c during GIMPLE pass: vect ionf2mqq.c: In function 'foo': ionf2mqq.c:9:1: internal compiler error: in dump_printf_loc, at dumpfile.cc:1359 9 | foo (void) | ^~~ 0x6c16b2 dump_printf_loc(dump_metadata_t const&, dump_user_location_t const&, char const*, ...) /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/dumpfile.cc:1359 0x119565b vect_do_peeling(_loop_vec_info*, tree_node*, tree_node*, tree_node**, tree_node**, tree_node**, int, bool, bool, tree_node**) /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/tree-vect-loop-manip.cc:2969 0x1187e99 vect_transform_loop(_loop_vec_info*, gimple*) /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/tree-vect-loop.cc:10807 0x11c6ca0 vect_transform_loops /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/tree-vectorizer.cc:1007 0x11c72de try_vectorize_loop_1 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/tree-vectorizer.cc:1153 0x11c72de try_vectorize_loop /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/tree-vectorizer.cc:1183 0x11c7694 execute /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/tree-vectorizer.cc:1299