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"

Reply via email to