From patchwork Fri Nov 23 14:44:32 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Jelinek X-Patchwork-Id: 201335 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 B11A62C008D for ; Sat, 24 Nov 2012 01:45:22 +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=1354286723; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Received:Received:Date:From:To:Cc:Subject:Message-ID:Reply-To: References:MIME-Version:Content-Type:Content-Disposition: In-Reply-To:User-Agent:Mailing-List:Precedence:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:Sender: Delivered-To; bh=IpfDQEdTZ8n+XY0rfnu+BQvKmp0=; b=M0ikIYy49LWgDVz 06bZYIXdzOb9vBjagG/xnnhcgrP/QU9smbyfHIS3Srq/ztZxpZSHGcCT8W0iryAM eSVu+8z52C+92xmp+8d5vVuFY/Es1m4Qy0moGnVjRAuQ/XMWypCatxdb7FkcV+oZ NXy2M5OIj6wKaDRVBYW9v4XtGGe0= 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:Received:Received:Date:From:To:Cc:Subject:Message-ID:Reply-To:References:MIME-Version:Content-Type:Content-Disposition:In-Reply-To:User-Agent:X-IsSubscribed:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=NPKsbmYDHZXcBEioLzNdH7NGZP9tpW3RdkyTg2cl1uuAAzbFBBiKKqJs4iUP8M dAoBv0iNIXiUUbp7LWVvUm+0dPutvf1GWIZO+OWm4z1PJbF6C2f9ePxpeIpLpAPZ BWHhZn3ZFFxEgASHXPnlwOjKWRBGNoqEZj8+j40MhL4q8=; Received: (qmail 16836 invoked by alias); 23 Nov 2012 14:45:14 -0000 Received: (qmail 16822 invoked by uid 22791); 23 Nov 2012 14:45:12 -0000 X-SWARE-Spam-Status: No, hits=-6.6 required=5.0 tests=AWL, BAYES_00, KHOP_RCVD_UNTRUST, 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, 23 Nov 2012 14:44:39 +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 qANEiai6022369 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 23 Nov 2012 09:44:37 -0500 Received: from zalov.redhat.com (vpn1-7-208.ams2.redhat.com [10.36.7.208]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id qANEiYB6020561 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 23 Nov 2012 09:44:36 -0500 Received: from zalov.cz (localhost [127.0.0.1]) by zalov.redhat.com (8.14.5/8.14.5) with ESMTP id qANEiWeJ015139; Fri, 23 Nov 2012 15:44:33 +0100 Received: (from jakub@localhost) by zalov.cz (8.14.5/8.14.5/Submit) id qANEiWwR015138; Fri, 23 Nov 2012 15:44:32 +0100 Date: Fri, 23 Nov 2012 15:44:32 +0100 From: Jakub Jelinek To: Vladimir Makarov , Mike Stump Cc: GCC Patches Subject: [PATCH] Add PR55430 testcase (PR middle-end/55430) Message-ID: <20121123144432.GZ2315@tucnak.redhat.com> Reply-To: Jakub Jelinek References: <50AED180.6070305@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <50AED180.6070305@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) 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 Hi! On Thu, Nov 22, 2012 at 08:29:36PM -0500, Vladimir Makarov wrote: > The following patch fixes > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55430 > > The patch was successfully bootstrapped and tested on x86/x86-64. > > Committed as rev. 193742. > > 2012-11-22 Vladimir Makarov > > PR middle-end/55430 > * lra.c: Move #include "hard-reg-set.h" before #include "rtl.h". > (new_insn_reg): Update biggest_mode. > (collect_non_operand_hard_regs): Check eliminable regs too. > (initialize_lra_reg_info_element): Initialize biggest_mode. > (add_regs_to_insn_regno_info): Ignore non-allocatable > non-eliminable hard regs. > (lra.c): Move setting lra_no_alloc_regs before > init_insn_recog_data. > * lra-constraints.c (simplify_operand_subreg): Add a comment. > (lra_constraints): Ignore equivalent memory of > regs occuring in paradoxical subregs. > * lra-lives.c (lra_create_live_ranges): Add a comment. You haven't committed a testcase for this. I've adjusted my testcase to match what e.g. gcc.dg/20030711-1.c testcase does (to make sure it will work even on weirdo effective target mmap targets). Ok for trunk? And thanks for the bugfix. 2012-11-23 Jakub Jelinek PR middle-end/55430 * gcc.dg/pr55430.c: New test. Jakub --- gcc/testsuite/gcc.dg/pr55430.c.jj 2012-11-23 15:40:04.724649106 +0100 +++ gcc/testsuite/gcc.dg/pr55430.c 2012-11-23 15:27:15.000000000 +0100 @@ -0,0 +1,43 @@ +/* PR middle-end/55430 */ +/* { dg-do run { target mmap } } */ +/* { dg-options "-O2" } */ + +#include +#include +#include +#ifndef MAP_ANONYMOUS +#define MAP_ANONYMOUS MAP_ANON +#endif +#ifndef MAP_ANON +#define MAP_ANON 0 +#endif +#include + +struct S +{ + unsigned int s1 : 8; + unsigned int s2 : 2; +}; + +__attribute__((noinline, noclone)) int +foo (int x, int y, struct S *z, unsigned int w) +{ + if (z[y].s2 == x && z[y].s1 == w) + return 1; + return 0; +} + +int +main () +{ + char *p = mmap (NULL, 131072, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + if (p == MAP_FAILED) + return 0; + if (munmap (p + 65536, 65536) < 0) + return 0; + if ((65536 / sizeof (struct S)) * sizeof (struct S) != 65536) + return 0; + struct S *s = (struct S *) (p + 65536); + return foo (0, 0, s - 1, 0) != 1; +}