[Bug target/65192] New: [avr-tiny] ICE in tiny_valid_direct_memory_access_range
gjl at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Feb 24 14:37:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65192
Bug ID: 65192
Summary: [avr-tiny] ICE in
tiny_valid_direct_memory_access_range
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Keywords: ice-checking
Severity: normal
Priority: P3
Component: target
Assignee: senthil_kumar.selvaraj at atmel dot com
Reporter: gjl at gcc dot gnu.org
Target: avr
if configured with --enable-checking=all avr-gcc 5.0 fails to build libgcc for
avrtiny:
conftest.c:11:1: internal compiler error: RTL check: expected elt 0 type 'e' or
'u', have 'i' (rtx reg) in tiny_valid_direct_memory_access_range, at
config/avr/avr.c:3228
main ()
^
0x8721938 rtl_check_failed_type2(rtx_def const*, int, int, int, char const*,
int, char const*)
../../../gcc.gnu.org/trunk/gcc/rtl.c:722
0x8abfcac tiny_valid_direct_memory_access_range(rtx_def*, machine_mode)
../../../gcc.gnu.org/trunk/gcc/config/avr/avr.c:3228
0x8b08e6f gen_movsi(rtx_def*, rtx_def*)
../../../gcc.gnu.org/trunk/gcc/config/avr/avr.md:680
0x83fc788 insn_gen_fn::operator()(rtx_def*, rtx_def*) const
../../../gcc.gnu.org/trunk/gcc/recog.h:303
0x83fc788 emit_move_insn_1(rtx_def*, rtx_def*)
../../../gcc.gnu.org/trunk/gcc/expr.c:3546
0x83fcb6b emit_move_insn(rtx_def*, rtx_def*)
../../../gcc.gnu.org/trunk/gcc/expr.c:3641
0x82e3f23 init_set_costs()
../../../gcc.gnu.org/trunk/gcc/cfgloopanal.c:371
0x87806ce backend_init_target
../../../gcc.gnu.org/trunk/gcc/toplev.c:1717
0x87806ce initialize_rtl()
../../../gcc.gnu.org/trunk/gcc/toplev.c:1820
0x84869ed init_function_start(tree_node*)
../../../gcc.gnu.org/trunk/gcc/function.c:4892
0x830c3a6 cgraph_node::expand()
../../../gcc.gnu.org/trunk/gcc/cgraphunit.c:1857
0x830dca6 expand_all_functions
../../../gcc.gnu.org/trunk/gcc/cgraphunit.c:2006
0x830dca6 symbol_table::compile()
../../../gcc.gnu.org/trunk/gcc/cgraphunit.c:2359
0x830fa5c symbol_table::finalize_compilation_unit()
../../../gcc.gnu.org/trunk/gcc/cgraphunit.c:2436
0x817d593 c_write_global_declarations()
../../../gcc.gnu.org/trunk/gcc/c/c-decl.c:10803
Please submit a full bug report,
with preprocessed source if appropriate.
This is because x = XEXP (op, 0) under the assumption that op is always MEM
which is not the case. It might also be REG or SUBREG.
BTW, using tiny_valid_direct_memory_access_range or similar in insn condition
in order to refuse some addresses is a bad approach. Better use
legitimate_address_p and similar hooks.
More information about the Gcc-bugs
mailing list