[Bug target/58785] New: [ARM] LRA issue in Thumb mode with movhi
yvan.roux at linaro dot org
gcc-bugzilla@gcc.gnu.org
Fri Oct 18 12:03:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58785
Bug ID: 58785
Summary: [ARM] LRA issue in Thumb mode with movhi
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: yvan.roux at linaro dot org
Created attachment 31039
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31039&action=edit
testcase
The attached testcase failed on ARM with LRA enabled in Thumb mode (it is a
reduce testcase from the ICE which brakes bootstrap with Thumb).
Here LRA has to deal with thumb1_movhi_insn :
(insn 11 5 14 2 (set (reg:HI 0 r0)
(const_int -1318 [0xfffffffffffffada])) ... {*thumb1_movhi_insn}
(nil))
and creates new regs to do it :
11: r0:HI=r114:HI
Inserting insn reload before:
18: r115:SI=0xfffffffffffffada
19: r114:HI=r115:SI#0
REG_EQUAL 0xfffffffffffffada
Choosing alt 6 in insn 18: (0) l (1) mi {*thumb1_movsi_insn}
Creating newreg=116 from oldreg=115, assigning class LO_REGS to r116
18: r116:SI=0xfffffffffffffada
Inserting insn reload after:
20: r115:SI=r116:SI
Creating newreg=117, assigning class LO_REGS to scratch r117
and during this move processing,
gen_thumb_movhi_clobber(rtx_def*,rtx_def*,rtx_def*) is called with a first rtx
parameter that doesn't satisfy the constraint of being a strict memory address
(it is a register).
command line to reproduce:
cc1 -quiet thumb2-lra.i -O2 -mthumb -mlra
More information about the Gcc-bugs
mailing list