From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2589 invoked by alias); 21 Oct 2008 16:41:44 -0000 Received: (qmail 1050 invoked by uid 48); 21 Oct 2008 16:40:18 -0000 Date: Tue, 21 Oct 2008 16:41:00 -0000 Subject: [Bug middle-end/37884] New: [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "krebbel at gcc dot gnu dot org" 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: 2008-10/txt/msg01340.txt.bz2 GCC bootstrap on s390x currently fails with: /build2/gcc/libgcc/../gcc/libgcc2.c: In function '__ucmpdi2': /build2/gcc/libgcc/../gcc/libgcc2.c:1169: internal compiler error: in compare_ranges, at tree-vrp.c:3375 reload reassigns a hard reg to a pseudo which has been created by change-loop (ira-emit.c). The pseudo is live across a bb boundary. The target bb has another pred bb which clobbers the same hard reg which is chosen by reload for the pseudo. So my current guess is that either the liveness info is broken for the pseudo created by change_loop or reload does not respect it in some way. The problem might be related to PR37859 which describes a problem where IRA is not able to detect that a register has been modified in the loop body. I've tried the patch: http://gcc.gnu.org/ml/gcc-patches/2008-10/msg00780.html without success. -- Summary: [4.4 Regression] Bootstrap failure due to miscompilation of tree-vrp.c Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: wrong-code, ra Severity: critical Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: krebbel at gcc dot gnu dot org GCC build triplet: s390x-ibm-linux GCC host triplet: s390x-ibm-linux GCC target triplet: s390x-ibm-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37884