regression of x86 gcc bootstrap with Linaro sourcebase

Bug #1088898 reported by Robert Schiele
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linaro GCC
Fix Released
High
Michael Hope

Bug Description

Before I build the cross compiler for ARM target I do a bootstrap
process of an i686 compiler on the same code base to use that one
building the cross compiler to reduce the chance of seeing subtle
problems late in the game. This process unveiled a x86 bootstrap
regression with some of your changes on the Linaro 4.7 branch.

It all boils down to the following set of changes:

commit c904094f2421bbd5d2cab6d7fbccecf055509629
Author: Ulrich Weigand <email address hidden>
Date: Mon Jul 16 16:31:58 2012 +0200

    Update to exactly reflect upstream version.

commit bf378903a1b749b904ae64635182e7fc9b43e0e4
Author: Ulrich Weigand <email address hidden>
Date: Tue Jul 10 15:46:51 2012 +0200

    Fix backport.

commit e0c3b0a21916ffafc058cd88d82423d87ce77b50
Author: Ulrich Weigand <email address hidden>
Date: Mon Jul 9 22:52:10 2012 +0200

    Fix LP 1020601.

This is the introduction of optimize_unreachable in gcc/tree-ssa-ccp.c.

When configuring with

../gcc/configure --host=i686-build_pc-linux-gnu
--build=i686-build_pc-linux-gnu --target=i686-build_pc-linux-gnu
--prefix=/ --libexecdir=//lib
--program-prefix=i686-build_pc-linux-gnu-
--with-sysroot=/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot
--with-local-prefix=/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot
--with-gmp=/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr
--with-mpfr=/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr
--with-mpc=/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr
--with-cloog=/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr
--with-ppl=/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr
'--with-host-libstdcxx=/user/rschiele/l/builddir/i686-build_pc-linux-gnu/tools/lib/libstdc++.a
-lm' --disable-multilib --disable-checking --enable-__cxa_atexit
--enable-libmudflap --enable-libgomp --enable-libssp
--enable-languages=c,c++ --enable-threads=posix
--disable-libstdcxx-pch --enable-c99 --enable-long-long
--disable-shared

It fails in the bootstrap at

/user/rschiele/l/src/gccbuild/./prev-gcc/g++
-B/user/rschiele/l/src/gccbuild/./prev-gcc/
-B//i686-build_pc-linux-gnu/bin/ -nostdinc++
-B/user/rschiele/l/src/gccbuild/prev-i686-build_pc-linux-gnu/libstdc++-v3/src/.libs
-B/user/rschiele/l/src/gccbuild/prev-i686-build_pc-linux-gnu/libstdc++-v3/libsupc++/.libs
-I/user/rschiele/l/src/gccbuild/prev-i686-build_pc-linux-gnu/libstdc++-v3/include/i686-build_pc-linux-gnu
-I/user/rschiele/l/src/gccbuild/prev-i686-build_pc-linux-gnu/libstdc++-v3/include
-I/user/rschiele/l/src/gcc/libstdc++-v3/libsupc++
-L/user/rschiele/l/src/gccbuild/prev-i686-build_pc-linux-gnu/libstdc++-v3/src/.libs
-L/user/rschiele/l/src/gccbuild/prev-i686-build_pc-linux-gnu/libstdc++-v3/libsupc++/.libs
-c -g -O2 -gtoggle -DIN_GCC -fno-exceptions -fno-rtti -W -Wall
-Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute
-pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings
 -DHAVE_CONFIG_H -I. -I. -I../../gcc/gcc -I../../gcc/gcc/.
-I../../gcc/gcc/../include -I../../gcc/gcc/../libcpp/include
-I/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr/include
-I/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr/include
-I/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr/include
 -I../../gcc/gcc/../libdecnumber -I../../gcc/gcc/../libdecnumber/bid
-I../libdecnumber
-I/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr/include
 -I/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr/include
 ../../gcc/gcc/sel-sched.c -o sel-sched.o
../../gcc/gcc/sel-sched.c: In function 'void sel_sched_region_2(int)':
../../gcc/gcc/sel-sched.c:7472:1: error: mismatching comparison operand types
struct rtx_def *
bool
if (insn_1716 == 0)

../../gcc/gcc/sel-sched.c:7472:1: internal compiler error: verify_gimple failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

Note, that the --disable-checking is essential to reproduce. As soon
as you do --enable-checking the bootstrap completes successfully. I
would assume that you then still have the bug in the compiler but it
is just subtle enough not to be triggered then.

Reverting the mentioned changes fixes this problem.

As suggested by Ulrich Weigand this is fixed upstream by:

commit a03a52b437d9e1b2d311f26aedd60465d025e1d6
Author: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon Sep 24 14:14:18 2012 +0000

    2012-09-24 Richard Guenther <email address hidden>

        PR tree-optimization/54684
        * tree-ssa-ccp.c (optimize_unreachable): Properly update stmts.

        * g++.dg/torture/pr54684.C: New testcase.

    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191667 138bc75d-0d04-0410-961f-82ee72b054a4

I verified that this fix fixes the bootstrapping problem seen.

Related branches

Changed in gcc-linaro:
status: New → In Progress
assignee: nobody → Ulrich Weigand (uweigand)
importance: Undecided → High
Changed in gcc-linaro:
assignee: Ulrich Weigand (uweigand) → Michael Hope (michaelh1)
Michael Hope (michaelh1)
Changed in gcc-linaro:
milestone: none → 4.7-2013.01
Changed in gcc-linaro:
status: In Progress → Fix Committed
Changed in gcc-linaro:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.