Bug 53700 - [4.7 regression] ICE in reload_cse_simplify_operands, at postreload.c:403
[4.7 regression] ICE in reload_cse_simplify_operands, at postreload.c:403
Status: RESOLVED FIXED
Product: gcc
Classification: Unclassified
Component: rtl-optimization
4.7.2
: P3 normal
: 4.7.2
Assigned To: Not yet assigned to anyone
: ra
: 53755 (view as bug list)
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-06-16 22:00 UTC by Kacper Kowalik
Modified: 2012-06-23 16:39 UTC (History)
3 users (show)

See Also:
Host: i686-pc-linux-gnu
Target: i?86-*-*
Build: i686-pc-linux-gnu
Known to work: 4.6.3, 4.8.0
Known to fail: 4.7.2
Last reconfirmed: 2012-06-18 00:00:00


Attachments
reduced testcase (7.07 KB, application/octet-stream)
2012-06-16 22:00 UTC, Kacper Kowalik
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kacper Kowalik 2012-06-16 22:00:45 UTC
Created attachment 27635 [details]
reduced testcase

Attached code causes following:

(x86) otus / # gcc-4.7.1 -O2 -fPIC -c ice_421413.i
ice_421413.i: In function 'oc_enc_analyze_inter':
ice_421413.i:262:11: warning: passing argument 4 of 'oc_cost_inter4mv' makes pointer from integer without a cast [enabled by default]
ice_421413.i:209:13: note: expected 'signed char (*)[2]' but argument is of type 'int'
ice_421413.i:275:1: error: insn does not satisfy its constraints:
(insn 453 452 550 8 (set (reg/f:SI 405)
        (plus:SI (reg/f:SI 20 frame)
            (const_int -480 [0xfffffffffffffe20]))) 247 {*leasi_2}
     (expr_list:REG_EQUIV (plus:SI (reg/f:SI 20 frame)
            (const_int -480 [0xfffffffffffffe20]))
        (nil)))
ice_421413.i:275:1: internal compiler error: in reload_cse_simplify_operands, at postreload.c:403

(x86) otus work # gcc -v
Using built-in specs.
COLLECT_GCC=/usr/i686-pc-linux-gnu/gcc-bin/4.7.1/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i686-pc-linux-gnu/4.7.1/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: /dev/shm/portage/sys-devel/gcc-4.7.1/work/gcc-4.7.1/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.7.1 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.7.1/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.7.1 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.7.1/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.7.1/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.7.1/include/g++-v4 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --disable-fixed-point --with-ppl --with-cloog --disable-ppl-version-check --with-cloog-include=/usr/include/cloog-ppl --enable-lto --enable-nls --without-included-gettext --with-system-zlib --enable-obsolete --disable-werror --enable-secureplt --disable-multilib --enable-libmudflap --disable-libssp --enable-libgomp --with-python-dir=/share/gcc-data/i686-pc-linux-gnu/4.7.1/python --enable-checking=release --disable-libgcj --with-arch=i686 --enable-languages=c,c++,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-targets=all --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.7.1 p1.0, pie-0.5.3'
Thread model: posix
gcc version 4.7.1 (Gentoo 4.7.1 p1.0, pie-0.5.3) 

It can be also reproduced on x86_64 with addition of -m32 flag.
Comment 1 Kacper Kowalik 2012-06-16 22:03:51 UTC
It was fixed in trunk by following changeset:

http://gcc.gnu.org/viewcvs?view=revision&revision=185971

Please backport
Comment 2 Ryan Hill 2012-06-17 00:00:07 UTC
* gestures towards the add an attachment button *
Comment 3 Ryan Hill 2012-06-17 00:05:30 UTC
Sorry wrong bugzilla.
Comment 4 Kacper Kowalik 2012-06-17 10:07:04 UTC
(In reply to comment #1)
> It was fixed in trunk by following changeset:
> 
> http://gcc.gnu.org/viewcvs?view=revision&revision=185971
> 
> Please backport

For the completness, the regression was introduced by:

http://gcc.gnu.org/viewcvs?view=revision&revision=182015

(gdb) bt
#0  fancy_abort (file=0xcb4975 "/dev/shm/gcc/gcc/postreload.c", line=403, function=0xcb4e90 "reload_cse_simplify_operands") at /dev/shm/gcc/gcc/diagnostic.c:898
#1  0x0000000000737f75 in _fatal_insn (msgid=<optimized out>, insn=0x7ffff55f0318, file=0xcb4975 "/dev/shm/gcc/gcc/postreload.c", line=403, function=0xcb4e90 "reload_cse_simplify_operands")
    at /dev/shm/gcc/gcc/rtl-error.c:110
#2  0x0000000000737fa0 in _fatal_insn_not_found (insn=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at /dev/shm/gcc/gcc/rtl-error.c:120
#3  0x00000000006f4e01 in reload_cse_simplify_operands (insn=0x7ffff55f0318, testreg=0x7ffff55fe0c0) at /dev/shm/gcc/gcc/postreload.c:403
#4  0x00000000006f519d in reload_cse_simplify (testreg=0x7ffff55fe0c0, insn=0x7ffff55f0318) at /dev/shm/gcc/gcc/postreload.c:181
#5  reload_cse_regs_1 (first=<optimized out>) at /dev/shm/gcc/gcc/postreload.c:214
#6  0x00000000006f65a9 in reload_cse_regs (first=0x7ffff5929480) at /dev/shm/gcc/gcc/postreload.c:71
#7  0x00000000006f6f7c in rest_of_handle_postreload () at /dev/shm/gcc/gcc/postreload.c:2277
#8  rest_of_handle_postreload () at /dev/shm/gcc/gcc/postreload.c:2271
#9  0x00000000006efc2a in execute_one_pass (pass=0x11b0140) at /dev/shm/gcc/gcc/passes.c:2074
#10 0x00000000006eff45 in execute_pass_list (pass=0x11b0140) at /dev/shm/gcc/gcc/passes.c:2129
#11 0x00000000006eff57 in execute_pass_list (pass=0x11afec0) at /dev/shm/gcc/gcc/passes.c:2130
#12 0x00000000006eff57 in execute_pass_list (pass=0x11aff20) at /dev/shm/gcc/gcc/passes.c:2130
#13 0x00000000007c7a53 in tree_rest_of_compilation (fndecl=0x7ffff58d8500) at /dev/shm/gcc/gcc/tree-optimize.c:421
#14 0x000000000057a40a in cgraph_expand_function (node=<optimized out>) at /dev/shm/gcc/gcc/cgraphunit.c:1818
#15 0x000000000057baba in cgraph_expand_all_functions () at /dev/shm/gcc/gcc/cgraphunit.c:1885
#16 cgraph_optimize () at /dev/shm/gcc/gcc/cgraphunit.c:2198
#17 0x000000000057c07a in cgraph_finalize_compilation_unit () at /dev/shm/gcc/gcc/cgraphunit.c:1327
#18 0x00000000004c09a0 in c_write_global_declarations () at /dev/shm/gcc/gcc/c-decl.c:10026
#19 0x0000000000782978 in compile_file () at /dev/shm/gcc/gcc/toplev.c:573
#20 do_compile () at /dev/shm/gcc/gcc/toplev.c:1928
#21 toplev_main (argc=5, argv=0x7fffffffe118) at /dev/shm/gcc/gcc/toplev.c:2004
#22 0x00007ffff67156e5 in __libc_start_main () from /lib64/libc.so.6
#23 0x00000000004afc19 in _start ()
Comment 5 Richard Biener 2012-06-18 09:01:52 UTC
Vlad?
Comment 6 Vladimir Makarov 2012-06-18 18:34:12 UTC
Author: vmakarov
Date: Mon Jun 18 18:34:01 2012
New Revision: 188750

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=188750
Log:
2012-06-18  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/53700

	Backport from mainline
	2012-03-29  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-color.c (setup_left_conflict_sizes_p): Process all
	conflicting objects.


Modified:
    branches/gcc-4_7-branch/gcc/ChangeLog
    branches/gcc-4_7-branch/gcc/ira-color.c
Comment 7 Richard Biener 2012-06-19 09:18:29 UTC
Thanks Vlad.
Comment 8 Matthias Klose 2012-06-23 16:39:27 UTC
*** Bug 53755 has been marked as a duplicate of this bug. ***