[Bug target/53250] New: [4.8 Regression] [SH] ICE: in change_address_1, at emit-rtl.c:2018
kkojima at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun May 6 00:51:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53250
Bug #: 53250
Summary: [4.8 Regression] [SH] ICE: in change_address_1, at
emit-rtl.c:2018
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: kkojima@gcc.gnu.org
CC: olegendo@gcc.gnu.org
Target: sh4-unknown-linux-gnu
On sh4-unknown-linux-gnu, there are many new failures after revision
187015. The typical example is gcc.c-torture/compile/20071102-1.c
which fails with
internal compiler error: in change_address_1, at emit-rtl.c:2018
It seems that rtls like
(subreg:SF (reg:DI ...) 4)
(subreg:SF (reg:V2SF ...) 4)
cause this error when regs are on stack. If my memory is correct,
the similar issue has popped up on oleg's work for QI/HImode addressing
with displacement. The above rtls are not illegal but problematic
when regs are on stack because SH has no load/store instructions
for FP registers and memory with displacement. Before lowering
subregs change in revision 187015, these subregs were decomposed
into subregs with zero byte count.
The trails of PR53716 say that the appropriate target-wise cost
computation is needed, though I can't find the way to enable
lowering the above subregs with adjusting SH's rtx cost computations.
More information about the Gcc-bugs
mailing list