https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101915

            Bug ID: 101915
           Summary: Microblaze ICE: in extract_insn, at recog.c:2770
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: giulio.benetti at benettiengineering dot com
  Target Milestone: ---

When building package lmbench on buildroot we get this error:
'''
/home/giuliobenetti/git/upstream/output-microblaze-lmbench-gcc11/host/bin/microblazeel-buildroot-linux-uclibc-gcc
-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -O2 -g0 
-I/home/giuliobenetti/git/upstream/output-microblaze-lmbench-gcc11/host/bin/../microblazeel-buildroot-linux-uclibc/sysroot/usr/include/tirpc
 -fno-tree-loop-distribute-patterns -DHAVE_off64_t -DHAVE_lseek64 -DRUSAGE
-DHAVE_uint=1 -DHAVE_int64_t=1 -DHAVE_pmap_clnt_h -DHAVE_socklen_t
-DHAVE_DRAND48 -DHAVE_SCHED_SETAFFINITY=1   -o ../bin/microblazeel/stream
stream.c ../bin/microblazeel/lmbench.a
-L/home/giuliobenetti/git/upstream/output-microblaze-lmbench-gcc11/host/bin/../microblazeel-buildroot-linux-uclibc/sysroot/usr/lib
-ltirpc 
-L/home/giuliobenetti/git/upstream/output-microblaze-lmbench-gcc11/host/bin/../microblazeel-buildroot-linux-uclibc/sysroot/usr/lib
-ltirpc -lm
par_ops.c: In function ‘int64_bit_2’:
par_ops.c:94:1: error: unrecognizable insn:
   94 | }
      | ^
par_ops.c:99:9: note: in expansion of macro ‘BENCHMARK’
   99 |         BENCHMARK(benchmark, 2, REPEAT_2)                              
\
      |         ^~~~~~~~~
par_ops.c:215:1: note: in expansion of macro ‘PARALLEL_BENCHMARKS’
  215 | PARALLEL_BENCHMARKS(int64_bit)
      | ^~~~~~~~~~~~~~~~~~~
(insn 353 354 352 3 (set (reg/v:DI 24 r24 [orig:74 i0 ] [74])
        (plus:DI (reg:DI 26 r26 [orig:48 _9 ] [48])
            (const_int -1 [0xffffffffffffffff]))) -1
     (nil))
during RTL pass: cprop_hardreg
par_ops.c:94:1: internal compiler error: in extract_insn, at recog.c:2770
   94 | }
      | ^
par_ops.c:99:9: note: in expansion of macro ‘BENCHMARK’
   99 |         BENCHMARK(benchmark, 2, REPEAT_2)                              
\
      |         ^~~~~~~~~
par_ops.c:215:1: note: in expansion of macro ‘PARALLEL_BENCHMARKS’
  215 | PARALLEL_BENCHMARKS(int64_bit)
      | ^~~~~~~~~~~~~~~~~~~
0x122170e diagnostic_impl(rich_location*, diagnostic_metadata const*, int, char
const*, __va_list_tag (*) [1], diagnostic_t)
        ???:0
0x12225ce internal_error(char const*, ...)
        ???:0
0x57a818 fancy_abort(char const*, int, char const*)
        ???:0
0x55c92f _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        ???:0
0x55c951 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        ???:0
0x55bc9e extract_insn(rtx_insn*) [clone .cold]
        ???:0
0xa24fec extract_constrain_insn(rtx_insn*)
        ???:0
0xa292c7 copyprop_hardreg_forward_1(basic_block_def*, value_data*) [clone
.isra.0]
        ???:0
0xa29fbd (anonymous namespace)::pass_cprop_hardreg::execute(function*)
        ???:0
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://bugs.buildroot.net/> for instructions.
make[3]: *** [Makefile:453: ../bin/microblazeel/par_ops] Error 1
make[2]: *** [Makefile:114: lmbench] Error 2
make[1]: *** [package/pkg-generic.mk:270:
/home/giuliobenetti/git/upstream/output-microblaze-lmbench-gcc11/build/lmbench-3.0-a9/.stamp_built]
Error 2
make: *** [Makefile:23: _all] Error 2
'''

To reproduce the bug:
'''
# git clone git://git.busybox.net/buildroot
# wget https://git.busybox.net/buildroot-test/tree/utils/br-reproduce-build

- modify BASE_GIT=... with your buildroot path in br-reproduce-build then:
# chmod a+x br-reproduce-build
# ./br-reproduce-build c6849f0f45b32e1f484fa5442b9d313fff4b2e8c
'''

I've found that it can be worked around disabling the optimization passing -O0
to CFLAGS.
  • [Bug c/101915] N... giulio.benetti at benettiengineering dot com via Gcc-bugs

Reply via email to