gcc -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../include/quicktime -O3 -funroll-all-loops -fomit-frame-pointer -finline-functions -W -Wall -Wno-unused -Winline -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c mot_est_mb.c -MT mot_est_mb.lo -MD -MP -MF .deps/mot_est_mb.TPlo -fPIC -DPIC -o .libs/mot_est_mb.lo mot_est_mb.c: In function `MBMotionEstimation': mot_est_mb.c:614: internal compiler error: in copy_to_mode_reg, at explow.c:740 Please submit a full bug report, This might be related to PR10587. Release: 3.2.3, 3.3 20030410 (prerelease) Environment: Reading specs from /usr/lib/gcc-lib/alpha-linux/3.2.3/specs Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,objc,ada --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.2 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-java-gc=boehm --enable-objc-gc alpha-linux Thread model: posix
From: Falk Hueffner <falk.hueffner@student.uni-tuebingen.de> To: rmurray@debian.org Cc: gcc-gnats@gcc.gnu.org, 192576@bugs.debian.org Subject: Re: target/10700: 3.2/3.3: ICE on alpha while building libquicktime Date: 09 May 2003 19:00:32 +0200 rmurray@debian.org writes: > gcc -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../include/quicktime -O3 -funroll-all-loops -fomit-frame-pointer -finline-functions -W -Wall -Wno-unused -Winline -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c mot_est_mb.c -MT mot_est_mb.lo -MD -MP -MF .deps/mot_est_mb.TPlo -fPIC -DPIC -o .libs/mot_est_mb.lo > mot_est_mb.c: In function `MBMotionEstimation': > mot_est_mb.c:614: internal compiler error: in copy_to_mode_reg, at explow.c:740 > Please submit a full bug report, Here's a testcase. int SAD_Block(int *); void MBMotionEstimation(int *act_block, int block) { SAD_Block(act_block + ( (8 * (block == 1 || block == 3)) + (8 * (block == 2 || block == 3)))); } Still there in gcc 3.4 20030423. -- Falk
From: Falk Hueffner <falk.hueffner@student.uni-tuebingen.de> To: gcc-gnats@gcc.gnu.org, gcc-bugs@gcc.gnu.org Cc: Subject: Re: target/10700: 3.2/3.3: ICE on alpha while building libquicktime Date: 10 May 2003 02:55:32 +0200 http://gcc.gnu.org/PR?10700 There's some problem with this tree (on ia64): <mult_expr 0x2000000000349fb0 type <integer_type 0x20000000002ec750 int SI size <integer_cst 0x20000000002e8930 constant 32> unit size <integer_cst 0x20000000002e8a80 constant 4> align 32 symtab 0 alias set 3 precision 32 min <integer_cst 0x20000000002e8a20 -2147483648> max <integer_cst 0x20000000002e8a50 2147483647> pointer_to_this <pointer_type 0x2000000000316630>> arg 0 <truth_or_expr 0x2000000000349f50 type <integer_type 0x20000000002ec9c0 long unsigned int unsigned DI size <integer_cst 0x20000000002e8ab0 constant 64> unit size <integer_cst 0x20000000002e8c00 constant 8> align 64 symtab 0 alias set -1 precision 64 min <integer_cst 0x20000000002e8c90 0> max <integer_cst 0x20000000002e8cc0 18446744073709551615>> arg 0 <eq_expr 0x2000000000349bf0 type <integer_type 0x20000000002ec9c0 long unsigned int> arg 0 <parm_decl 0x20000000003852b0 block> arg 1 <integer_cst 0x2000000000349bc0 constant 1>> arg 1 <eq_expr 0x2000000000349c50 type <integer_type 0x20000000002ec9c0 long unsigned int> arg 0 <parm_decl 0x20000000003852b0 block> arg 1 <integer_cst 0x2000000000349c20 constant 3>>> arg 1 <integer_cst 0x2000000000349b90 type <integer_type 0x20000000002ec750 int> constant 8>> expand_mult eventually gets passed (reg:DI XXX) and (const_int 8) and doesn't like the result mode being different from arg0's mode. I'm not sure whether it is supposed to. Also, shouldn't the type of eq_expr and truth_or_expr always be int? Maybe somebody more knowledgeable can comment on this... -- Falk
Confirmed on powerpc64-linux with gcc 3.2.3, 3.3 branch and mainline (20030604).
*** Bug 10587 has been marked as a duplicate of this bug. ***
The (very old) regression in 10700 was introduced with this patch: Sat Nov 27 08:38:26 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * fold-const.c (negate_expr, associate_trees, extract_muldiv): New. (split_tree): Completely rework to make more general. (make_range, fold): Call negate_expr. (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math. (fold, associate): Call new split_tree and associate_trees. (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv. The test case used an alpha-linux cross cc1 on i686-pc-linux-gnu with the minimized test case from comment #1 in the PR, compiled with "-O3 -funroll-all-loops -fomit-frame-pointer -finline-functions".
Roger, please take ownership of the PRs when you have submitted a patch, especially for high-priority PRs. Thanks.
Subject: Bug 10700 CVSROOT: /cvs/gcc Module name: gcc Changes by: sayle@gcc.gnu.org 2003-07-03 13:08:11 Modified files: gcc : ChangeLog fold-const.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/gcc.c-torture/compile: 20030703-1.c Log message: PR target/10700 * fold-const.c (extract_muldiv_1): There's nothing that can be done if the expression is a SAVE_EXPR. * gcc.c-torture/compile/20030703-1.c: New test case. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.312&r2=2.313 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fold-const.c.diff?cvsroot=gcc&r1=1.273&r2=1.274 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.2831&r2=1.2832 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/compile/20030703-1.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
Subject: Bug 10700 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_3-branch Changes by: sayle@gcc.gnu.org 2003-07-03 13:18:08 Modified files: gcc : ChangeLog fold-const.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/gcc.c-torture/compile: 20030703-1.c Log message: PR target/10700 * fold-const.c (extract_muldiv_1): There's nothing that can be done if the expression is a SAVE_EXPR. * gcc.c-torture/compile/20030703-1.c: New test case. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.16114.2.632&r2=1.16114.2.633 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fold-const.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.227.2.3&r2=1.227.2.4 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.2261.2.215&r2=1.2261.2.216 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/compile/20030703-1.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=NONE&r2=1.1.2.1
Fixed for 3.3.1 and on the mainline.