https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89725
Bug ID: 89725 Summary: ICE in get_fnname_from_decl, at varasm.c:1723 Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: powerpc-*-linux-gnu gcc-9.0.0-alpha20190310 snapshot (r269561) ICEs when compiling gcc/testsuite/gcc.dg/graphite/id-26.c w/ -msoft-float -O3 -ffast-math -fopenacc -fsave-optimization-record -fstack-protector-explicit -fno-ssa-phiopt -fno-tree-dce --param max-completely-peel-times=0 --param max-jump-thread-duplication-stmts=0: % powerpc-e300c3-linux-gnu-gcc-9.0.0-alpha20190310 -msoft-float -O3 -ffast-math -fopenacc -fsave-optimization-record -fstack-protector-explicit -fno-ssa-phiopt -fno-tree-dce --param max-completely-peel-times=0 --param max-jump-thread-duplication-stmts=0 -c mp5vu7b1.c during GIMPLE pass: vect mp5vu7b1.c: In function 'find_sad_16x16': mp5vu7b1.c:2:5: internal compiler error: in get_fnname_from_decl, at varasm.c:1723 2 | int find_sad_16x16(int *intra_mode) | ^~~~~~~~~~~~~~ 0x6d09fc get_fnname_from_decl(tree_node*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190310/work/gcc-9-20190310/gcc/varasm.c:1723 0xc25c86 optrecord_json_writer::optinfo_to_json(optinfo const*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190310/work/gcc-9-20190310/gcc/optinfo-emit-json.cc:414 0xc25e48 optrecord_json_writer::add_record(optinfo const*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190310/work/gcc-9-20190310/gcc/optinfo-emit-json.cc:141 0x93dd36 dump_context::end_any_optinfo() /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190310/work/gcc-9-20190310/gcc/dumpfile.c:1193 0x94066a dump_context::begin_scope(char const*, dump_user_location_t const&, dump_impl_location_t const&) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190310/work/gcc-9-20190310/gcc/dumpfile.c:1132 0xf90a1a auto_dump_scope::auto_dump_scope(char const*, dump_user_location_t const&, dump_impl_location_t const&) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190310/work/gcc-9-20190310/gcc/dumpfile.h:609 0xf90a1a vect_analyze_loop(loop*, _loop_vec_info*, vec_info_shared*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190310/work/gcc-9-20190310/gcc/tree-vect-loop.c:2234 0xfafd08 try_vectorize_loop_1 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190310/work/gcc-9-20190310/gcc/tree-vectorizer.c:883 0xfb0c36 vectorize_loops() /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190310/work/gcc-9-20190310/gcc/tree-vectorizer.c:1111 It may be one of those -m32 -msoft-float related PRs like PR88134 and PR88599 which are not clear how to universally reproduce. 1717 const char * 1718 get_fnname_from_decl (tree decl) 1719 { 1720 rtx x = DECL_RTL (decl); 1721 gcc_assert (MEM_P (x)); 1722 x = XEXP (x, 0); 1723 gcc_assert (GET_CODE (x) == SYMBOL_REF); 1724 return XSTR (x, 0); 1725 } 1723 gcc_assert (GET_CODE (x) == SYMBOL_REF); (gdb) p GET_CODE (x) $1 = VALUE (gdb) p XSTR (x, 0) $6 = 0x7ffff78cc420 "find_sad_16x16"