[armel] ICE immed_double_const at emit-rtl.c (-mfpu=neon -g)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Linaro GCC |
Fix Released
|
Medium
|
Richard Sandiford | ||
4.6-2011.07-stable |
Won't Fix
|
Medium
|
Michael Hope | ||
Linaro GCC Tracking |
Fix Released
|
Undecided
|
Unassigned | ||
gcc |
Confirmed
|
Medium
|
Bug Description
I've tried this with linaro 2010.09 and 2011.03 and the one that is currently available from Ubuntu Natty repo:
kaltsi@
arm-linux-
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The problem comes when using -mfpu=neon and -g (and at least -O1).
kaltsi@
optimized.c: In function ‘move_16bit_
optimized.c:4:6: internal compiler error: in immed_double_const, at emit-rtl.c:552
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:/
I do not get the ICE with linaro gcc-4.4 available from Natty.
Changed in gcc-linaro: | |
status: | Triaged → In Progress |
assignee: | nobody → Chung-Lin Tang (cltang) |
Changed in gcc-linaro: | |
status: | In Progress → Fix Committed |
Changed in gcc-linaro: | |
milestone: | none → 4.6-2011.08 |
Changed in gcc-linaro: | |
status: | Fix Committed → Fix Released |
Changed in gcc: | |
importance: | Unknown → Medium |
status: | Unknown → Confirmed |
Confirmed in gcc-linaro- 4.5+bzr99489:
ichaelh@ ursa1:/ scratch/ michaelh/ bugs$ ../toolchains/ gcc-linaro- 4.5+bzr99489- armv7l- maverick- cbuild79- carina5- cortexa8r1/ bin/gcc -mfpu=neon -O1 -g -c emit-rtl-ice.i to_32bit' :
optimized.c: In function 'move_16bit_
optimized.c:4:6: internal compiler error: in immed_double_const, at emit-rtl.c:552
Also appears on a cross compiler. The backtrace is:
#1 0x0000000000580d19 in immed_double_const (i0=0, i1=0, mode=OImode) ./src/gcc- linaro- 4.5-2011. 03-0/gcc/ emit-rtl. c:552 1ca8, target=0x0, ./src/gcc- linaro- 4.5-2011. 03-0/gcc/ expr.c: 8465 1ca8) ./src/gcc- linaro- 4.5-2011. 03-0/gcc/ expr.h: 558 1ca8) ./src/gcc- linaro- 4.5-2011. 03-0/gcc/ cfgexpand. c:2329 debug_locations () ./src/gcc- linaro- 4.5-2011. 03-0/gcc/ cfgexpand. c:3122 ./src/gcc- linaro- 4.5-2011. 03-0/gcc/ cfgexpand. c:3885 ./src/gcc- linaro- 4.5-2011. 03-0/gcc/ passes. c:1572
at ../../.
#2 0x00000000005a34c3 in expand_expr_real_1 (exp=0x7ffff4dd
tmode=<value optimized out>, modifier=<value optimized out>, alt_rtl=0x0)
at ../../.
#3 0x0000000000521425 in expand_expr (exp=0x7ffff4dd
at ../../.
#4 expand_debug_expr (exp=0x7ffff4dd
at ../../.
#5 0x00000000005237d8 in expand_
at ../../.
#6 gimple_expand_cfg () at ../../.
#7 0x00000000006715dc in execute_one_pass (pass=0xf8a720)
at ../../.
Note that mode is OImode (a 32 byte integer) which makes sense with the int32x4x2 types in the example code.