From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10391 invoked by alias); 21 Jul 2010 22:53:14 -0000 Received: (qmail 10381 invoked by uid 22791); 21 Jul 2010 22:53:13 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 21 Jul 2010 22:53:08 +0000 Received: (qmail 18758 invoked from network); 21 Jul 2010 22:53:06 -0000 Received: from unknown (HELO ?84.152.249.159?) (bernds@127.0.0.2) by mail.codesourcery.com with ESMTPA; 21 Jul 2010 22:53:06 -0000 Message-ID: <4C477A1A.8040604@codesourcery.com> Date: Wed, 21 Jul 2010 22:53:00 -0000 From: Bernd Schmidt User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.10) Gecko/20100625 Thunderbird/3.0.5 MIME-Version: 1.0 To: Jeff Law CC: GCC Patches , John David Anglin Subject: Re: Emit more REG_EQUIV notes for function args (PR42235) References: <4C3D9C06.60901@codesourcery.com> <4C3E07EF.1030306@redhat.com> <4C3E2C62.40808@codesourcery.com> <4C3E39F0.7050208@redhat.com> <4C3F41BA.7070905@codesourcery.com> <4C4420F2.5010807@codesourcery.com> <4C44827B.5070305@redhat.com> In-Reply-To: <4C44827B.5070305@redhat.com> Content-Type: multipart/mixed; boundary="------------030705060702070906090904" 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: 2010-07/txt/msg01688.txt.bz2 This is a multi-part message in MIME format. --------------030705060702070906090904 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-length: 199 Here's a different patch, which I've committed as obvious after bootstrapping and testing i686 and x64_64-linux. It just restricts the previous change to situations where it's clearly safe. Bernd --------------030705060702070906090904 Content-Type: text/plain; name="parm-equiv-fix.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="parm-equiv-fix.diff" Content-length: 1526 Index: ChangeLog =================================================================== --- ChangeLog (revision 162390) +++ ChangeLog (working copy) @@ -18,6 +18,10 @@ an old insn, ignore a use that occurs after store_ruid. * Makefile.in (postreload.o): Update dependencies. + * function.c (record_hard_reg_sets): Restrict the previous change + to cases where the incoming nominal mode is the same as the + incoming promoted mode and everything happens in MODE_INT. + 2010-07-21 Jakub Jelinek PR debug/45015 Index: function.c =================================================================== --- function.c (revision 162372) +++ function.c (working copy) @@ -2918,7 +2918,10 @@ assign_parm_setup_reg (struct assign_par || promoted_nominal_mode != data->promoted_mode); moved = false; - if (need_conversion) + if (need_conversion + && GET_MODE_CLASS (data->nominal_mode) == MODE_INT + && data->nominal_mode == data->passed_mode + && data->nominal_mode == GET_MODE (data->entry_parm)) { /* ENTRY_PARM has been converted to PROMOTED_MODE, its mode, by the caller. We now have to convert it to @@ -2979,8 +2982,9 @@ assign_parm_setup_reg (struct assign_par if (moved) { emit_insn (insns); - equiv_stack_parm = gen_rtx_fmt_e (code, GET_MODE (parmreg), - equiv_stack_parm); + if (equiv_stack_parm != NULL_RTX) + equiv_stack_parm = gen_rtx_fmt_e (code, GET_MODE (parmreg), + equiv_stack_parm); } } } --------------030705060702070906090904--