From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13446 invoked by alias); 12 Apr 2012 16:03:56 -0000 Received: (qmail 13364 invoked by uid 22791); 12 Apr 2012 16:03:54 -0000 X-SWARE-Spam-Status: No, hits=-4.8 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-iy0-f175.google.com (HELO mail-iy0-f175.google.com) (209.85.210.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 12 Apr 2012 16:03:41 +0000 Received: by iaag37 with SMTP id g37so3141845iaa.20 for ; Thu, 12 Apr 2012 09:03:40 -0700 (PDT) MIME-Version: 1.0 Received: by 10.50.158.202 with SMTP id ww10mr3085137igb.30.1334246620207; Thu, 12 Apr 2012 09:03:40 -0700 (PDT) Received: by 10.42.228.200 with HTTP; Thu, 12 Apr 2012 09:03:40 -0700 (PDT) In-Reply-To: References: <9D615F2A-78E8-4418-8BFF-51D341B28FDE@adacore.com> <20120404012215.GN12569@bubble.grove.modra.org> <20120405140316.GB2736@bubble.grove.modra.org> <7A78BBDD-9FF9-4A39-92DB-8A77FE7BD2A2@adacore.com> <20120406003241.GC2736@bubble.grove.modra.org> <2DB818B6-1442-45BE-8105-69DEE1BF6706@adacore.com> <20120411041534.GB24704@bubble.grove.modra.org> <20120412132252.GA10114@bubble.grove.modra.org> Date: Thu, 12 Apr 2012 16:03:00 -0000 Message-ID: Subject: Re: [RS6000] Stack tie fix. From: Richard Guenther To: David Edelsohn Cc: amodra@gmail.com, Olivier Hainque , GCC Patches Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2012-04/txt/msg00778.txt.bz2 On Thu, Apr 12, 2012 at 5:34 PM, David Edelsohn wrote: > On Thu, Apr 12, 2012 at 9:22 AM, Alan Modra wrote: > >> I tried that. =A0It doesn't work without something else in the insn to >> stop rtl-dce deleting it, so you may as well use SETs. =A0But thanks for >> the prod in the right direction. =A0We do get slightly better results >> when the regs are not hidden away in an UNSPEC, for instance >> non-stack writes/reads are seen by the alias oracle to not conflict >> with the epilogue frame deallocation. >> >> Bootstrapped etc. powerpc-linux. =A0OK to apply, David? >> >> =A0 =A0 =A0 =A0PR target/52828 >> =A0 =A0 =A0 =A0* config/rs6000/rs6000.c (rs6000_emit_stack_tie): Rewrite= with >> =A0 =A0 =A0 =A0tie regs on destination of sets. =A0Delete forward declar= ation. >> =A0 =A0 =A0 =A0(rs6000_emit_stack_reset): Update rs6000_emit_stack_tie c= alls. >> =A0 =A0 =A0 =A0(rs6000_emit_prologue): Likewise. >> =A0 =A0 =A0 =A0(rs6000_emit_epilogue): Likewise. =A0Use in place of gen_= frame_tie >> =A0 =A0 =A0 =A0and gen_stack_tie. >> =A0 =A0 =A0 =A0(is_mem_ref): Use tie_operand to recognise stack ties. >> =A0 =A0 =A0 =A0* config/rs6000/predicates.md (tie_operand): New. >> =A0 =A0 =A0 =A0* config/rs6000/rs6000.md (UNSPEC_TIE): Delete. >> =A0 =A0 =A0 =A0(restore_stack_block): Generate new stack tie rtl. >> =A0 =A0 =A0 =A0(restore_stack_nonlocal): Likewise. >> =A0 =A0 =A0 =A0(stack_tie): Update. >> =A0 =A0 =A0 =A0(frame_tie): Delete. > > This probably is getting close to the best we can do with GCC's RTL > alias analysis infrastructure. > > This version is okay, but I also want to give Richi and Olivier an > opportunity to comment if they still have any concerns. It looks fine to me. Richard. > Thanks, David