Bug 42949 - ICE: reload_cse_simplify_operands, at postreload.c:396
Summary: ICE: reload_cse_simplify_operands, at postreload.c:396
Status: RESOLVED WONTFIX
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 4.5.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2010-02-03 20:46 UTC by Ryan Mansfield
Modified: 2013-12-17 16:41 UTC (History)
2 users (show)

See Also:
Host: i686-pc-linux-gnu
Target: arm-unknown-linux-gnu
Build: i686-pc-linux-gnu
Known to work:
Known to fail:
Last reconfirmed: 2010-02-06 15:23:48


Attachments
Preprocessed C++ source. (1.54 KB, text/plain)
2010-02-03 20:47 UTC, Ryan Mansfield
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ryan Mansfield 2010-02-03 20:46:03 UTC
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.
Comment 1 Ryan Mansfield 2010-02-03 20:47:27 UTC
Created attachment 19799 [details]
Preprocessed C++ source.
Comment 2 Richard Earnshaw 2010-02-06 15:23:48 UTC
Confirmed.  coproc_secondary_reload_class needs to be taught about reg_equiv_mem (at a minimum).
Comment 3 Ian Bolton 2011-03-24 14:24:23 UTC
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.
Comment 4 Mikael Pettersson 2011-03-24 15:13:17 UTC
(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.
Comment 5 Ryan Mansfield 2013-12-17 16:41:44 UTC
ARM OABI is no longer a supported target