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

            Bug ID: 78883
           Summary: [avr] ICE triggered by change to combine.c (r243578)
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gjl at gcc dot gnu.org
  Target Milestone: ---

r243578 triggers several ICEs in avr-gcc test suite; amongst them:

$ avr-gcc /gnu/gcc.gnu.org/trunk/gcc/testsuite/gcc.c-torture/compile/pr26833.c
-S -O1 -mmcu=avr4 -S -da
/gnu/gcc.gnu.org/trunk/gcc/testsuite/gcc.c-torture/compile/pr26833.c: In
function 'yasm_lc3b__parse_insn':
/gnu/gcc.gnu.org/trunk/gcc/testsuite/gcc.c-torture/compile/pr26833.c:19:1:
error: insn does not satisfy its constraints:
 }
 ^
(jump_insn 58 98 59 9 (set (pc)
        (if_then_else (eq (and:HI (reg:HI 31 r31)
                    (const_int 1 [0x1]))
                (const_int 0 [0]))
            (label_ref 70)
            (pc)))
"/gnu/gcc.gnu.org/trunk/gcc/testsuite/gcc.c-torture/compile/pr26833.c":11 415
{*sbrx_and_branchhi}
     (int_list:REG_BR_PROB 375 (nil))
 -> 70)
/gnu/gcc.gnu.org/trunk/gcc/testsuite/gcc.c-torture/compile/pr26833.c:19:1:
internal compiler error: in extract_constrain_insn, at recog.c:2213
0x9840e3 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        ../../../gcc.gnu.org/trunk/gcc/rtl-error.c:108
0x98410f _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        ../../../gcc.gnu.org/trunk/gcc/rtl-error.c:119
0x95b61d extract_constrain_insn(rtx_insn*)
        ../../../gcc.gnu.org/trunk/gcc/recog.c:2213
0x939b45 reload_cse_simplify_operands
        ../../../gcc.gnu.org/trunk/gcc/postreload.c:391
0x93a725 reload_cse_simplify
        ../../../gcc.gnu.org/trunk/gcc/postreload.c:179
0x93a725 reload_cse_regs_1
        ../../../gcc.gnu.org/trunk/gcc/postreload.c:218
0x93c3ab reload_cse_regs
        ../../../gcc.gnu.org/trunk/gcc/postreload.c:64
0x93c3ab execute
        ../../../gcc.gnu.org/trunk/gcc/postreload.c:2342
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
georg@pandora:~/test>

R31 is the last hard reg (8-bit) and must never be allocated to HImode.

GCC configured as:

$ ../../gcc.gnu.org/trunk/configure --target=avr
--prefix=/local/gnu/install/gcc-7 --disable-shared --disable-nls --with-dwarf2
--enable-target-optspace=yes --with-gnu-as --with-gnu-ld
--enable-checking=release --enable-languages=c,c++

Reply via email to