ICE in reload_cse_simplify_operands, at postreload.c:396. ICE doesn't happen with an ARM EABI configuration. ryan@zoidberg:~/gnu/gcc/trunk/arm/gcc$ ./xgcc -v Using built-in specs. COLLECT_GCC=./xgcc Target: arm-unknown-linux-gnu Configured with: ../configure --target=arm-unknown-linux-gnu --prefix=/home/ryan/x-tools/arm-unknown-linux-gnu --with-headers=/home/ryan/x-tools/arm-unknown-linux-gnu/arm-unknown-linux-gnu/include --with-local-prefix=/home/ryan/x-tools/arm-unknown-linux-gnu/arm-unknown-linux-gnu --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c++ --enable-shared --enable-c99 --enable-long-long Thread model: posix gcc version 4.5.0 20100203 (experimental) [trunk revision 156467] (GCC) ryan@zoidberg:~/gnu/gcc/trunk/arm/gcc$ ./xgcc -B. -O1 -mfpu=vfp -mfloat-abi=softfp ~/ice.ii /home/ryan/ice.ii: In member function 'virtual TTT* ticu::fold(TOperator, TTT*, TInfoSink&)': /home/ryan/ice.ii:175:6: error: insn does not satisfy its constraints: (insn 741 248 742 6 /home/ryan/ice.ii:68 (set (mem/c:SF (plus:SI (reg/f:SI 11 fp) (const_int -1024 [0xfffffc00])) [0 %sfp+-1020 S4 A32]) (reg:SF 78 s15)) 590 {*movsf_vfp} (nil)) /home/ryan/ice.ii:175:6: internal compiler error: in reload_cse_simplify_operands, at postreload.c:396 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions.
Created attachment 19799 [details] Preprocessed C++ source.
Confirmed. coproc_secondary_reload_class needs to be taught about reg_equiv_mem (at a minimum).
For gcc 4.5 r171282, arm-none-linux-gnueabi, I can run this command without error: arm-none-linux-gnueabi-g++ ~/investigate/pr42949.i -B. -c -O1 -mfpu=vfp It also works for trunk (r171212). I therefore think this is fixed or has ceased to be, but it would be good to get confirmation someone else.
(In reply to comment #3) > For gcc 4.5 r171282, arm-none-linux-gnueabi, I can run this command without > error: > > arm-none-linux-gnueabi-g++ ~/investigate/pr42949.i -B. -c -O1 -mfpu=vfp > > It also works for trunk (r171212). > > I therefore think this is fixed or has ceased to be, but it would be good to > get confirmation someone else. You tested with an EABI compiler. The original report stated that the ICE occurs with arm-linux configurations, i.e. OABI, but not with EABI configurations.
ARM OABI is no longer a supported target