4.7: ICE in reload_cse_simplify_operands, at postreload.c:403 with -O1 -march=armv7-a -mthumb
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| Linaro Android |
Fix Released
|
Critical
|
Bernhard Rosenkraenzer | |
| Linaro GCC |
Fix Released
|
High
|
Michael Hope | |
| gcc |
Fix Released
|
Medium
|
Bug Description
New issue in current bzr builds -- the 12.08 release is fine:
cts/apps/
(insn 5241 5240 147 2 (set (zero_extract:SI (reg/f:SI 13 sp)
(const_int 65535 [0xffff])) cts/apps/
(nil))
cts/apps/
Bernhard Rosenkraenzer (berolinux) wrote : | #1 |
Bernhard Rosenkraenzer (berolinux) wrote : | #2 |
Changed in linaro-android: | |
status: | New → Triaged |
importance: | Undecided → Critical |
assignee: | nobody → Bernhard Rosenkraenzer (berolinux) |
milestone: | none → 12.09 |
Michael Hope (michaelh1) wrote : | #3 |
Thank you for the bug report. I've confirmed this with gcc-linaro-
michaelh@
bug1046999.cc: In function ‘void bug1046999()’:
bug1046999.cc:12:1: error: insn does not satisfy its constraints:
(insn 117 116 48 2 (set (zero_extract:SI (reg/f:SI 13 sp)
(const_int 65535 [0xffff])) bug1046999.cc:3 348 {*arm_movtas_ze}
(nil))
bug1046999.cc:12:1: internal compiler error: in reload_
The fault is introduced by bzr115014 and is caused by the new add pattern not handling a sp = rx + constant pattern, causing reload to turn this into a movw, movt, and add. The pattern above is the movt part.
The fault exists upstream as at svn191044. Could you report it in GCC bugzilla and record it against this ticket?
I've set this to high priority as it's an ICE with no work around.
Michael Hope (michaelh1) wrote : | #4 |
Oh, and the fault was introduced in svn190472 by rearnshaw.
Changed in gcc-linaro: | |
importance: | Undecided → High |
status: | New → Triaged |
Michael Hope (michaelh1) wrote : | #5 |
It seems that the r/r/k patterns used for other forms also need doing for the add. A shortcut is to remove the k constraint from the first operand, forcing sp adds to use a later alternative.
Changed in gcc-linaro: | |
assignee: | nobody → Michael Hope (michaelh1) |
status: | Triaged → In Progress |
|
#8 |
Created attachment 28143
Reduced test case
$ arm-linux-
ice.cc: In function 'void bug1046999()':
ice.cc:12:1: error: insn does not satisfy its constraints:
(insn 121 120 52 2 (set (zero_extract:SI (reg/f:SI 13 sp)
(const_int 65535 [0xffff])) bug1046999.cc:3 348 {*arm_movtas_ze}
(nil))
ice.cc:12:1: internal compiler error: in reload_
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://
Introduced in svn rev 190472
Bernhard Rosenkraenzer (berolinux) wrote : | #6 |
Upstream bug report http://
Michael Hope (michaelh1) wrote : | #7 |
Marked as affecting. Will bring up at todays meeting. Revert underway.
Changed in gcc: | |
importance: | Unknown → Medium |
status: | Unknown → In Progress |
Michael Hope (michaelh1) wrote : | #11 |
Reverted.
Changed in gcc-linaro: | |
milestone: | none → 4.7-2012.09 |
status: | In Progress → Fix Committed |
Changed in gcc-linaro: | |
status: | Fix Committed → Fix Released |
|
#12 |
Author: rearnsha
Date: Fri Sep 14 17:10:45 2012
New Revision: 191307
URL: http://
Log:
PR target/54516
PR rtl-optimizatio
* reload.c (find_dummy_
for IN if it overlaps a fixed register.
Modified:
trunk/
trunk/
Changed in gcc: | |
status: | In Progress → Fix Released |
Changed in linaro-android: | |
status: | Triaged → Fix Committed |
Changed in linaro-android: | |
status: | Fix Committed → Fix Released |
Attaching reduced test case:
[bero@localhost grouper-4.1.1]$ /opt/android- toolchain- 4.7/bin/ arm-linux- androideabi- g++ -O1 -mthumb -march=armv7-a -c bug1046999.cc -o bug1046999.o
(const_ int 16 [0x10])
(const_ int 16 [0x10])) cse_simplify_ operands, at postreload.c:403 gcc.gnu. org/bugs. html> for instructions.
bug1046999.cc: In function 'void bug1046999()':
bug1046999.cc:12:1: error: insn does not satisfy its constraints:
(insn 121 120 52 2 (set (zero_extract:SI (reg/f:SI 13 sp)
(const_int 65535 [0xffff])) bug1046999.cc:3 348 {*arm_movtas_ze}
(nil))
bug1046999.cc:12:1: internal compiler error: in reload_
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://