From patchwork Tue Oct 23 20:07:28 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Makarov X-Patchwork-Id: 193565 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 650C72C0089 for ; Wed, 24 Oct 2012 07:14:42 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1351628082; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Message-ID:Date:From:User-Agent:MIME-Version:To:Subject: Content-Type:Mailing-List:Precedence:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:Sender:Delivered-To; bh=ejqDD5s h2YN8Nk3QIOVIvDamijM=; b=lQ4Q6e/Z9oki2lP1YxNi1pLZawChTOg32agcg6p 5ZjykoRV1PalGqRr8pwfTywGw728E0DgkGdIEkxIuHsy73gZ9LPO+uaZGS/pSdkW QuLi2C6GSvX1Zfs+IgQJakQsLH9FM950aJs74INhDu2d+N1FdtTuhPFBj2+iGVuI uGTo= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:Received:Message-ID:Date:From:User-Agent:MIME-Version:To:Subject:Content-Type:X-IsSubscribed:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=mepTXrEhvRDWmCoN6JvzQ4xiPVELsi8DStNoM1NRhioQEu8lgGndHIDKV9ul/L 9bUt09F+14yDl8qGQn6uBb7iaqflRkcaWXXp1TSxhaCo48zIaIN4nclDfuSKgc9A RvfJVeGJ9muMa468kT7894ZIeBkn2Kzc5eGs+8tJRJZK8=; Received: (qmail 13478 invoked by alias); 23 Oct 2012 20:14:04 -0000 Received: (qmail 13360 invoked by uid 22791); 23 Oct 2012 20:14:02 -0000 X-SWARE-Spam-Status: No, hits=-6.6 required=5.0 tests=AWL, BAYES_00, KHOP_RCVD_UNTRUST, MAY_BE_FORGED, RCVD_IN_DNSWL_HI, RCVD_IN_HOSTKARMA_W, RP_MATCHES_RCVD, SPF_HELO_PASS X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 23 Oct 2012 20:13:59 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q9NKDwlc024409 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 23 Oct 2012 16:13:58 -0400 Received: from toll.usersys.redhat.com (unused [10.15.16.165] (may be forged)) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id q9NKDw8Z015422 for ; Tue, 23 Oct 2012 16:13:58 -0400 Message-ID: <5086F900.6040307@redhat.com> Date: Tue, 23 Oct 2012 16:07:28 -0400 From: Vladimir Makarov User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121009 Thunderbird/16.0 MIME-Version: 1.0 To: gcc-patches Subject: patch to fix a testsuite failure in LRA X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Uros reported that GCC after LRA submitting has a new test failure on x86. The reason was in wrong update live info in EBB containing empty BB as the last EBB block. For such case live_out of the last EBB was undefined and actually a garbage. It resulted in triggering a code which checks that pseudo assigned to call clobbered hard register does not live through calls. The following patch fixes the problem. The patch was successfully tested and bootstrapped on x86. Committed as rev. 192743. 2012-10-23 Vladimir Makarov * lra-constraints.c (update_ebb_live_info): Process empty blocks. Index: lra-constraints.c =================================================================== --- lra-constraints.c (revision 192719) +++ lra-constraints.c (working copy) @@ -4300,8 +4300,6 @@ update_ebb_live_info (rtx head, rtx tail curr_insn = prev_insn) { prev_insn = PREV_INSN (curr_insn); - if (! INSN_P (curr_insn)) - continue; curr_bb = BLOCK_FOR_INSN (curr_insn); if (curr_bb != prev_bb) { @@ -4336,7 +4334,7 @@ update_ebb_live_info (rtx head, rtx tail prev_bb = curr_bb; bitmap_and (&live_regs, &check_only_regs, df_get_live_out (curr_bb)); } - if (DEBUG_INSN_P (curr_insn)) + if (! NONDEBUG_INSN_P (curr_insn)) continue; curr_id = lra_get_insn_recog_data (curr_insn); remove_p = false;