http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57864 Bug ID: 57864 Summary: [4.7 Regression] ICE in bitmap_set_replace_value, at tree-ssa-pre.c:862 Product: gcc Version: 4.7.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: j-1fabfe3bb3efc0eaf9750936b80a1c20 at sharpwave dot de Created attachment 30482 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30482&action=edit Reduced testcase, crashes 4.7.3 when compiled with -O3 -m64 The attached reduced testcase produces an ICE on 4.7.3 when compiled with -O3. -O2 is fine, as is 4.7.2 and 4.8.0. Compilation with -m32 likewise passes. $ /opt/gccs/4.7.3/bin/g++--4.7.3 -c -O3 -m64 testcase.cpp testcase.cpp: In function ‘void _ZL3fn1P1Xib.constprop.0(X*, bool)’: testcase.cpp:18:1: internal compiler error: in bitmap_set_replace_value, at tree-ssa-pre.c:862 This seems to be related to bug 55888 and bug 55107. Full details: $ /opt/gccs/4.7.3/bin/g++--4.7.3 -v -c -O3 -m64 testcase.cpp Using built-in specs. COLLECT_GCC=/opt/gccs/4.7.3/bin/g++--4.7.3 Target: x86_64-unknown-linux-gnu Configured with: ../src/gcc-4.7.3/configure --prefix=/opt/gccs/4.7.3 --program-suffix=--4.7.3 --enable-languages=c,c++ --disable-bootstrap Thread model: posix gcc version 4.7.3 (GCC) COLLECT_GCC_OPTIONS='-v' '-c' '-O3' '-m64' '-shared-libgcc' '-mtune=generic' '-march=x86-64' /opt/gccs/4.7.3/libexec/gcc/x86_64-unknown-linux-gnu/4.7.3/cc1plus -quiet -v -D_GNU_SOURCE testcase.cpp -quiet -dumpbase testcase.cpp -m64 -mtune=generic -march=x86-64 -auxbase testcase -O3 -version -o /tmp/ccm58ig9.s GNU C++ (GCC) version 4.7.3 (x86_64-unknown-linux-gnu) compiled by GNU C version 4.4.5, GMP version 4.3.2, MPFR version 3.0.0-p3, MPC version 0.8.2 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ignoring nonexistent directory "/usr/local/include" ignoring nonexistent directory "/opt/gccs/4.7.3/lib/gcc/x86_64-unknown-linux-gnu/4.7.3/../../../../x86_64-unknown-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /opt/gccs/4.7.3/lib/gcc/x86_64-unknown-linux-gnu/4.7.3/../../../../include/c++/4.7.3 /opt/gccs/4.7.3/lib/gcc/x86_64-unknown-linux-gnu/4.7.3/../../../../include/c++/4.7.3/x86_64-unknown-linux-gnu /opt/gccs/4.7.3/lib/gcc/x86_64-unknown-linux-gnu/4.7.3/../../../../include/c++/4.7.3/backward /opt/gccs/4.7.3/lib/gcc/x86_64-unknown-linux-gnu/4.7.3/include /opt/gccs/4.7.3/include /opt/gccs/4.7.3/lib/gcc/x86_64-unknown-linux-gnu/4.7.3/include-fixed /usr/include End of search list. GNU C++ (GCC) version 4.7.3 (x86_64-unknown-linux-gnu) compiled by GNU C version 4.4.5, GMP version 4.3.2, MPFR version 3.0.0-p3, MPC version 0.8.2 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 4073671a6c09c56d7812f3b7ae137fde testcase.cpp: In function ‘void _ZL3fn1P1Xib.constprop.0(X*, bool)’: testcase.cpp:18:1: internal compiler error: in bitmap_set_replace_value, at tree-ssa-pre.c:862 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. >From gcc-bugs-return-426018-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Tue Jul 09 11:38:18 2013 Return-Path: Delivered-To: listarch-gcc-bugs@gcc.gnu.org Received: (qmail 4820 invoked by alias); 9 Jul 2013 11:38:18 -0000 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 Delivered-To: mailing list gcc-bugs@gcc.gnu.org Received: (qmail 4787 invoked by uid 48); 9 Jul 2013 11:38:11 -0000 From: "sebastian.huber@embedded-brains.de" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/57865] New: Broken _save64gpr and _rest64gpr usage Date: Tue, 09 Jul 2013 11:38: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-Version: 4.8.1 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: sebastian.huber@embedded-brains.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-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter attachments.created Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2013-07/txt/msg00525.txt.bz2 Content-length: 1465 http://gcc.gnu.org/bugzilla/show_bug.cgi?idW865 Bug ID: 57865 Summary: Broken _save64gpr and _rest64gpr usage Product: gcc Version: 4.8.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: sebastian.huber@embedded-brains.de Created attachment 30483 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id0483&actioníit Test case. The 64-bit GPR save and restore sequence is broken and destroys the link register saved on the stack: powerpc-eabi-gcc -mcpu…40 -mspe -mabi=spe -mfloat-gprs=double -Os -S test.c diff -u test-4.7.2.s test-4.8.1.s --- test-4.7.2.s 2013-07-09 13:09:56.418360402 +0200 +++ test-4.8.1.s 2013-07-09 13:31:59.097519823 +0200 @@ -6,7 +6,7 @@ f: stwu 1,-56(1) mflr 0 - addi 11,1,-88 + addi 11,1,-80 stw 0,60(1) bl _save64gpr_29 mr 29,3 @@ -15,16 +15,16 @@ stw 6,24(1) bl g lwz 5,16(1) + lwz 6,24(1) + evmergelo 31,3,4 stw 3,8(1) stw 4,12(1) mr 3,29 - lwz 6,24(1) mr 4,30 - evldd 31,8(1) bl h - addi 11,1,-88 + addi 11,1,-80 efdctsiz 3,31 b _rest64gpr_29_x .size f, .-f - .ident "GCC: (GNU) 4.7.2" + .ident "GCC: (GNU) 4.8.1" .gnu_attribute 4, 2