GCC Bugzilla – Bug 48840
[4.5 regression] assertion failure in reload1.c
Last modified: 2012-07-02 09:54:52 UTC
Created attachment 24159 [details]
Preprocessed, trivially reduced test-case
For gcc-4.4.0 and gcc-4.4.5, observe the following ICE for the attachment, running "cc1 -fpreprocessed ~/rcf3.i -mptr64 -mstack-bias -mlong-double-128 -mcpu=ultrasparc -m64 -mvis -O2 -funroll-loops -fPIC -o rc_filter.s":
/home/hp/rcf3.i: In function 'rc_filter_sobel_3x3_horz_u8':
/home/hp/rcf3.i:26: internal compiler error: in reload, at reload1.c:1170
where that line has a "gcc_assert (old_frame_size == get_frame_size ())".
Similarly for trunk revision 172690 (same line, different number)
though not for revision 170836 (now the 4.6 branch) and not for gcc-4.3.5.
Ouch, forgot target field...
Date: Thu Jun 2 13:04:43 2011
New Revision: 174566
* gcc.target/sparc/ultrasp13.c: New test.
Works on the mainline now.
The problem is that reload chooses a FP reg as reload register for a V8QI value coming in from a general register. So a secondary memory is needed and this increases the frame size.
4.4 branch is being closed, moving to 4.5.4 target.
Fixed for 4.6.1.