From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15307 invoked by alias); 17 Jan 2012 13:59:14 -0000 Received: (qmail 15294 invoked by uid 22791); 17 Jan 2012 13:59:11 -0000 X-SWARE-Spam-Status: No, hits=-2.8 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,SUBJ_OBFU_PUNCT_FEW,TW_GX X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 17 Jan 2012 13:58:53 +0000 From: "thierry.reding@avionic-design.de" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/51882] New: ICE: in extract_insn, at recog.c:2109 (unrecognizable insn) when building Mesa on ARM Date: Tue, 17 Jan 2012 14:35:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: thierry.reding@avionic-design.de X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2012-01/txt/msg01909.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D51882 Bug #: 51882 Summary: ICE: in extract_insn, at recog.c:2109 (unrecognizable insn) when building Mesa on ARM Classification: Unclassified Product: gcc Version: 4.6.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned@gcc.gnu.org ReportedBy: thierry.reding@avionic-design.de Created attachment 26351 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=3D26351 Preprocessed source. I can reproduce this ICE reliably by running the following commands in a git checkout of Mesa (git://anongit.freedesktop.org/mesa/mesa.git): $ cd src/mesa $ ${CROSS_COMPILE}gcc -c -o swrast/s_span.o swrast/s_span.c -DFEATURE_GL= =3D1 -DFEATURE_ES1=3D1 -DFEATURE_ES2=3D1 -D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_M= EMALIGN -DUSE_XCB -DUSE_XSHM -DHAVE_MINCORE -DHAVE_LIBUDEV -I../../include -I../../src/glsl -I../../src/mesa -I../../src/mapi -I../../src/gallium/incl= ude -I../../src/gallium/auxiliary -mlittle-endian -mapcs -mabi=3Daapcs-linux -mno-thumb-interwork -g -O2 -marm -march=3Darmv7-a -mtune=3Dcortex-a9 -Uarm -mfpu=3Dvfpv3-d16 -mfloat-abi=3Dsoftfp -Wall -Wextra -Wmissing-prototypes -= std=3Dc99 -ffast-math -fno-strict-aliasing -fno-builtin-memcmp -fPIC -fvisibility=3Dh= idden -save-temps -v Where the CROSS_COMPILE variable points to the ARM cross-compiler. I've tes= ted with a variety of versions and can reproduce this with the CodeSourcery 2009q3 (gcc 4.4.1), 2010q1 (gcc 4.4.1), 2010.09 (gcc 4.5.1), 2011.03 (gcc 4.5.2) and 2011.09 (gcc 4.6.1) toolchains as well as with a custom toolchain based= on gcc 4.6.2 and gcc-4.6-20120113. However, the issue is no longer present in = the latest 4.7 snapshot (tested with a custom toolchain based on gcc-4.7-201201= 14). I was also not able to reproduce the ICE with an older CodeSourcery toolcha= in (2009q1, gcc 4.3.3). The attached preprocessed source file is from the custom gcc-4.6-20120113 toolchain, with the following output when running the above command: --- Using built-in specs. COLLECT_GCC=3D/home/thierry.reding/src/pbs-experimental.git/toolchains/arm-= unknown-linux-gnueabi/usr/bin/arm-unknown-linux-gnueabi-gcc-4.6.3 COLLECT_LTO_WRAPPER=3D/home/thierry.reding/src/pbs-experimental.git/toolcha= ins/arm-unknown-linux-gnueabi/usr/arm-unknown-linux-gnueabi/lib/gcc/arm-unk= nown-linux-gnueabi/4.6.3/lto-wrapper Target: arm-unknown-linux-gnueabi Configured with: ../configure --target=3Darm-unknown-linux-gnueabi --prefix=3D/home/thierry.reding/src/pbs-experimental.git/toolchains/arm-unk= nown-linux-gnueabi/usr --datadir=3D/home/thierry.reding/src/pbs-experimental.git/toolchains/arm-un= known-linux-gnueabi/usr/arm-unknown-linux-gnueabi/share --infodir=3D/home/thierry.reding/src/pbs-experimental.git/toolchains/arm-un= known-linux-gnueabi/usr/arm-unknown-linux-gnueabi/share/info --mandir=3D/home/thierry.reding/src/pbs-experimental.git/toolchains/arm-unk= nown-linux-gnueabi/usr/arm-unknown-linux-gnueabi/share/man --libdir=3D/home/thierry.reding/src/pbs-experimental.git/toolchains/arm-unk= nown-linux-gnueabi/usr/arm-unknown-linux-gnueabi/lib --libexecdir=3D/home/thierry.reding/src/pbs-experimental.git/toolchains/arm= -unknown-linux-gnueabi/usr/arm-unknown-linux-gnueabi/lib --includedir=3D/home/thierry.reding/src/pbs-experimental.git/toolchains/arm= -unknown-linux-gnueabi/usr/arm-unknown-linux-gnueabi/sys-root/usr/include --with-gxx-include-dir=3D/home/thierry.reding/src/pbs-experimental.git/tool= chains/arm-unknown-linux-gnueabi/usr/arm-unknown-linux-gnueabi/sys-root/usr= /include/c++/4.6.3 --with-pkgversion=3D'PBS 2010.08-wip' --program-prefix=3Darm-unknown-linux-= gnueabi- --with-mpfr=3D/home/thierry.reding/src/pbs-experimental.git/toolchains/arm-= unknown-linux-gnueabi/usr --with-gmp=3D/home/thierry.reding/src/pbs-experimental.git/toolchains/arm-u= nknown-linux-gnueabi/usr --enable-languages=3Dc,c++,objc,obj-c++ --disable-libssp --with-as=3D/home/thierry.reding/src/pbs-experimental.git/toolchains/arm-un= known-linux-gnueabi/usr/bin/arm-unknown-linux-gnueabi-as --with-ld=3D/home/thierry.reding/src/pbs-experimental.git/toolchains/arm-un= known-linux-gnueabi/usr/bin/arm-unknown-linux-gnueabi-ld --with-sysroot=3Dyes Thread model: posix gcc version 4.6.3 20120113 (prerelease) (PBS 2010.08-wip)=20 COLLECT_GCC_OPTIONS=3D'-c' '-o' 'swrast/s_span.o' '-D' 'FEATURE_GL=3D1' '-D' 'FEATURE_ES1=3D1' '-D' 'FEATURE_ES2=3D1' '-D' '_GNU_SOURCE' '-D' 'PTHREADS'= '-D' 'HAVE_POSIX_MEMALIGN' '-D' 'USE_XCB' '-D' 'USE_XSHM' '-D' 'HAVE_MINCORE' '-= D' 'HAVE_LIBUDEV' '-I' '../../include' '-I' '../../src/glsl' '-I' '../../src/m= esa' '-I' '../../src/mapi' '-I' '../../src/gallium/include' '-I' '../../src/gallium/auxiliary' '-mlittle-endian' '-mapcs' '-mabi=3Daapcs-lin= ux' '-mno-thumb-interwork' '-g' '-O2' '-marm' '-march=3Darmv7-a' '-mtune=3Dcort= ex-a9' '-U' 'arm' '-mfpu=3Dvfpv3-d16' '-mfloat-abi=3Dsoftfp' '-Wall' '-Wextra' '-Wmissing-prototypes' '-std=3Dc99' '-ffast-math' '-fno-strict-aliasing' '-fno-builtin-memcmp' '-fPIC' '-fvisibility=3Dhidden' '-save-temps' '-v' /home/thierry.reding/src/pbs-experimental.git/toolchains/arm-unknown-linux-= gnueabi/usr/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.6= .3/cc1 -E -quiet -v -I ../../include -I ../../src/glsl -I ../../src/mesa -I ../../src/mapi -I ../../src/gallium/include -I ../../src/gallium/auxiliary = -D FEATURE_GL=3D1 -D FEATURE_ES1=3D1 -D FEATURE_ES2=3D1 -D _GNU_SOURCE -D PTHR= EADS -D HAVE_POSIX_MEMALIGN -D USE_XCB -D USE_XSHM -D HAVE_MINCORE -D HAVE_LIBUDEV = -U arm swrast/s_span.c -mlittle-endian -mapcs -mabi=3Daapcs-linux -mno-thumb-interwork -marm -march=3Darmv7-a -mtune=3Dcortex-a9 -mfpu=3Dvfpv= 3-d16 -mfloat-abi=3Dsoftfp -std=3Dc99 -Wall -Wextra -Wmissing-prototypes -ffast-m= ath -fno-strict-aliasing -fno-builtin-memcmp -fPIC -fvisibility=3Dhidden -g -fworking-directory -O2 -fpch-preprocess -o s_span.i ignoring nonexistent directory "/home/thierry.reding/src/pbs-experimental.git/toolchains/arm-unknown-linux= -gnueabi/usr/arm-unknown-linux-gnueabi/sys-root/usr/local/include" ignoring nonexistent directory "/home/thierry.reding/src/pbs-experimental.git/toolchains/arm-unknown-linux= -gnueabi/usr/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.= 6.3/../../../../../arm-unknown-linux-gnueabi/include" #include "..." search starts here: #include <...> search starts here: ../../include ../../src/glsl ../../src/mesa ../../src/mapi ../../src/gallium/include ../../src/gallium/auxiliary /home/thierry.reding/src/pbs-experimental.git/toolchains/arm-unknown-linux-= gnueabi/usr/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.6= .3/include /home/thierry.reding/src/pbs-experimental.git/toolchains/arm-unknown-linux-= gnueabi/usr/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.6= .3/include-fixed /home/thierry.reding/src/pbs-experimental.git/toolchains/arm-unknown-linux-= gnueabi/usr/arm-unknown-linux-gnueabi/sys-root/usr/include End of search list. COLLECT_GCC_OPTIONS=3D'-c' '-o' 'swrast/s_span.o' '-D' 'FEATURE_GL=3D1' '-D' 'FEATURE_ES1=3D1' '-D' 'FEATURE_ES2=3D1' '-D' '_GNU_SOURCE' '-D' 'PTHREADS'= '-D' 'HAVE_POSIX_MEMALIGN' '-D' 'USE_XCB' '-D' 'USE_XSHM' '-D' 'HAVE_MINCORE' '-= D' 'HAVE_LIBUDEV' '-I' '../../include' '-I' '../../src/glsl' '-I' '../../src/m= esa' '-I' '../../src/mapi' '-I' '../../src/gallium/include' '-I' '../../src/gallium/auxiliary' '-mlittle-endian' '-mapcs' '-mabi=3Daapcs-lin= ux' '-mno-thumb-interwork' '-g' '-O2' '-marm' '-march=3Darmv7-a' '-mtune=3Dcort= ex-a9' '-U' 'arm' '-mfpu=3Dvfpv3-d16' '-mfloat-abi=3Dsoftfp' '-Wall' '-Wextra' '-Wmissing-prototypes' '-std=3Dc99' '-ffast-math' '-fno-strict-aliasing' '-fno-builtin-memcmp' '-fPIC' '-fvisibility=3Dhidden' '-save-temps' '-v' /home/thierry.reding/src/pbs-experimental.git/toolchains/arm-unknown-linux-= gnueabi/usr/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.6= .3/cc1 -fpreprocessed s_span.i -quiet -dumpbase s_span.c -mlittle-endian -mapcs -mabi=3Daapcs-linux -mno-thumb-interwork -marm -march=3Darmv7-a -mtune=3Dco= rtex-a9 -mfpu=3Dvfpv3-d16 -mfloat-abi=3Dsoftfp -auxbase-strip swrast/s_span.o -g -O= 2 -Wall -Wextra -Wmissing-prototypes -std=3Dc99 -version -ffast-math -fno-strict-al= iasing -fno-builtin-memcmp -fPIC -fvisibility=3Dhidden -o s_span.s GNU C (PBS 2010.08-wip) version 4.6.3 20120113 (prerelease) (arm-unknown-linux-gnueabi) compiled by GNU C version 4.6.2 20111223 (prerelease), GMP version 5.0.2, MPFR version 3.1.0, MPC version 0.9 GGC heuristics: --param ggc-min-expand=3D100 --param ggc-min-heapsize=3D131= 072 GNU C (PBS 2010.08-wip) version 4.6.3 20120113 (prerelease) (arm-unknown-linux-gnueabi) compiled by GNU C version 4.6.2 20111223 (prerelease), GMP version 5.0.2, MPFR version 3.1.0, MPC version 0.9 GGC heuristics: --param ggc-min-expand=3D100 --param ggc-min-heapsize=3D131= 072 Compiler executable checksum: 7fad8c4e675218b56e8d9c2b6af7198f swrast/s_span.c: In function =E2=80=98_swrast_write_rgba_span=E2=80=99: swrast/s_span.c:1304:1: error: unrecognizable insn: (insn 5607 5606 5608 280 (set (reg:HI 1 r1) (reg:SI 69 s6)) swrast/s_span.c:891 -1 (nil)) swrast/s_span.c:1304:1: internal compiler error: in extract_insn, at recog.c:2109 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. --- I haven't been able to reduce this into a small test-case unfortunately. However I was able to bisect the issue to the following commit in Mesa: 3d7c5a4f6f4155e249f6eac76d861eb1bc59eb69. I'm not sure if that helps, though. I have also played around with various compiler options. The ICE goes away if I use -O1 instead of -O2. It also goes away if I change -mfloat-abi=3Dsoftfp to -mfloat-abi=3Dsoft. If I change -mtune=3Dcortex-a9 = to -mtune=3Dcortex-a8, it also compiles fine. I'd be happy to provide more information if needed.