This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/53250] New: [4.8 Regression] [SH] ICE: in change_address_1, at emit-rtl.c:2018
- From: "kkojima at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 05 May 2012 23:57:26 +0000
- Subject: [Bug target/53250] New: [4.8 Regression] [SH] ICE: in change_address_1, at emit-rtl.c:2018
- Auto-submitted: auto-generated
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.