From patchwork Fri Mar 15 22:51:10 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Makarov X-Patchwork-Id: 228191 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 5D06B2C00A8 for ; Sat, 16 Mar 2013 09:51:30 +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=1363992690; 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=sxBZnM+ aP7NyF2+eb7FNk2COvF0=; b=hSu/8wKKlyvXNkj++j98CuUf+F3h5P2DKBD79yC DIDymyQC8Hzr3AL25QAWvwgFKNptrGhWfIC4vtrq33NNeVegUBQUsYDobUb8xQ60 mXOo9LaMAGdB3a/DoSQrBA963c59p7PEN0Zmu6EkRjUECB8RO0kHVhiv9YooiuQA VxdQ= 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=MqkWvEAB3e84jsyABOWpmQUAHBbaVYzw4ZVnbaMFhJGPHHdMT06wAcEnD0Q+NS cF3K07Fs3Ba87xN0kyZDPAkV9xUnZRDPqkPsne0o5hQpFmrVfXnQKWdsjkUwftBK Z4XoZU4aHzC/MPRS84fq6EpACqFZJbR9iShZ/NZvCd38I=; Received: (qmail 12769 invoked by alias); 15 Mar 2013 22:51:21 -0000 Received: (qmail 12760 invoked by uid 22791); 15 Mar 2013 22:51:20 -0000 X-SWARE-Spam-Status: No, hits=-7.6 required=5.0 tests=AWL, BAYES_00, KHOP_RCVD_UNTRUST, KHOP_SPAMHAUS_DROP, 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; Fri, 15 Mar 2013 22:51:12 +0000 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r2FMpBUQ027147 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 15 Mar 2013 18:51:11 -0400 Received: from Mair.local (vpn-51-243.rdu2.redhat.com [10.10.51.243]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id r2FMpAtQ013508 for ; Fri, 15 Mar 2013 18:51:11 -0400 Message-ID: <5143A5DE.1080004@redhat.com> Date: Fri, 15 Mar 2013 18:51:10 -0400 From: Vladimir Makarov User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:17.0) Gecko/20130307 Thunderbird/17.0.4 MIME-Version: 1.0 To: GCC Patches Subject: [lra] patch to fix s390 testsuite failures 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 The following patch fixes all s390 GCC testsuite failures (in comparison with reloads). The problem was in unaligned access in a shared library code which was result of unaligned stack of generated code. The patch was also successfully bootstrapped on x86/x86-64. Committed as rev. 196685. 2013-03-15 Vladimir Makarov * lra.c (lra): Align non-empty stack frame. * lra-spills.c (lra_spill): Align stack after spilling pseudos. Index: ChangeLog =================================================================== --- ChangeLog (revision 196598) +++ ChangeLog (working copy) @@ -1,3 +1,8 @@ +2013-03-15 Vladimir Makarov + + * lra.c (lra): Allign non-empty stack frame. + * lra-spills.c (lra_spill): Allign stack after spilling pseudos. + 2013-03-08 Vladimir Makarov * lra-constraints.c (process_alt_operands): Don't penalize Index: lra-spills.c =================================================================== --- lra-spills.c (revision 196598) +++ lra-spills.c (working copy) @@ -548,6 +548,11 @@ lra_spill (void) for (i = 0; i < n; i++) if (pseudo_slots[pseudo_regnos[i]].mem == NULL_RTX) assign_mem_slot (pseudo_regnos[i]); + if (n > 0 && crtl->stack_alignment_needed) + /* If we have a stack frame, we must align it now. The stack size + may be a part of the offset computation for register + elimination. */ + assign_stack_local (BLKmode, 0, crtl->stack_alignment_needed); if (lra_dump_file != NULL) { for (i = 0; i < slots_num; i++) Index: lra.c =================================================================== --- lra.c (revision 196598) +++ lra.c (working copy) @@ -2272,6 +2272,11 @@ lra (FILE *f) bitmap_initialize (&lra_split_regs, ®_obstack); bitmap_initialize (&lra_optional_reload_pseudos, ®_obstack); live_p = false; + if (get_frame_size () != 0 && crtl->stack_alignment_needed) + /* If we have a stack frame, we must align it now. The stack size + may be a part of the offset computation for register + elimination. */ + assign_stack_local (BLKmode, 0, crtl->stack_alignment_needed); for (;;) { for (;;)