From patchwork Tue Nov 2 21:35:17 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 69925 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 BDFCBB70E8 for ; Wed, 3 Nov 2010 08:35:27 +1100 (EST) Received: (qmail 30186 invoked by alias); 2 Nov 2010 21:35:25 -0000 Received: (qmail 30069 invoked by uid 22791); 2 Nov 2010 21:35:24 -0000 X-SWARE-Spam-Status: No, hits=-1.2 required=5.0 tests=AWL, BAYES_00, NO_DNS_FOR_FROM, TW_VZ, TW_ZJ, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mga09.intel.com (HELO mga09.intel.com) (134.134.136.24) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 02 Nov 2010 21:35:19 +0000 Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP; 02 Nov 2010 14:35:18 -0700 X-ExtLoop1: 1 Received: from gnu-6.sc.intel.com ([10.3.194.135]) by orsmga002.jf.intel.com with ESMTP; 02 Nov 2010 14:35:18 -0700 Received: by gnu-6.sc.intel.com (Postfix, from userid 500) id 070E721E2F; Tue, 2 Nov 2010 14:35:17 -0700 (PDT) Date: Tue, 2 Nov 2010 14:35:17 -0700 From: "H.J. Lu" To: gcc-patches@gcc.gnu.org, Uros Bizjak Subject: Re: PATCH: Emit vzerouppers after reload Message-ID: <20101102213517.GA9519@intel.com> Reply-To: "H.J. Lu" References: <20101102180606.GA4551@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20101102180606.GA4551@intel.com> User-Agent: Mutt/1.5.21 (2010-09-15) 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 On Tue, Nov 02, 2010 at 11:06:06AM -0700, H.J. Lu wrote: > Hi, > > This patch changes vzeroupper optimization to emit vzerouppers after > reload. I checked in it as approved by Uros offline. > > Thanks. > > > H.J. > --- > gcc/ > > 2010-11-02 Uros Bizjak > H.J. Lu > > * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New. > (ix86_split_call_pop_vzeroupper): Likewise. > > * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite > the loop. > (ix86_expand_call): Use UNSPEC_CALL_NEEDS_VZEROUPPER. > (ix86_split_call_vzeroupper): New. > (ix86_split_call_pop_vzeroupper): Likewise. > > * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New. > (*call_pop_0_vzeroupper): Likewise. > (*call_pop_1_vzeroupper): Likewise. > (*sibcall_pop_1_vzeroupper): Likewise. > (*call_0_vzeroupper): Likewise. > (*call_1_vzeroupper): Likewise. > (*sibcall_1_vzeroupper): Likewise. > (*call_1_rex64_vzeroupper): Likewise. > (*call_1_rex64_ms_sysv_vzeroupper): New. > (*call_1_rex64_large_vzeroupper): Likewise. > (*sibcall_1_rex64_vzeroupper): Likewise. > (*call_value_pop_0_vzeroupper): New. > (*call_value_pop_1_vzeroupper): Likewise. > (*sibcall_value_pop_1_vzeroupper): Likewise. > (*call_value_0_vzeroupper): New. > (*call_value_0_rex64_vzeroupper): Use > (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise. > (*call_value_1_vzeroupper): Likewise. > (*sibcall_value_1_vzeroupper): Likewise. > (*call_value_1_rex64_vzeroupper): Likewise. > (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise. > (*call_value_1_rex64_large_vzeroupper): Likewise. > (*sibcall_value_1_rex64_vzeroupper): Likewise. > I checkec in this patch as an obvious fix to correct a typo. H.J. Index: ChangeLog =================================================================== --- ChangeLog (revision 166214) +++ ChangeLog (working copy) @@ -1,3 +1,8 @@ +2010-11-02 H.J. Lu + + * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a + typo. + 2010-11-02 Eric Botcazou * basic-block.h (insert_insn_end_bb_new): Delete. Index: config/i386/i386.md =================================================================== --- config/i386/i386.md (revision 166214) +++ config/i386/i386.md (working copy) @@ -11515,7 +11515,7 @@ (match_operand 1 "" "")) (unspec [(match_operand 2 "const_int_operand" "")] UNSPEC_CALL_NEEDS_VZEROUPPER)] - "TARGET_VZEROUPPER && TARGET_64BIT && !SIBLING_CALL_P (insn)" + "TARGET_VZEROUPPER && TARGET_64BIT && SIBLING_CALL_P (insn)" "#" "&& reload_completed" [(const_int 0)]