From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9657 invoked by alias); 30 Dec 2010 11:19:12 -0000 Received: (qmail 9632 invoked by uid 22791); 30 Dec 2010 11:19:11 -0000 X-SWARE-Spam-Status: No, hits=-2.1 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,TW_AV,TW_MV,TW_VZ X-Spam-Check-By: sourceware.org Received: from mail-px0-f175.google.com (HELO mail-px0-f175.google.com) (209.85.212.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 30 Dec 2010 11:19:06 +0000 Received: by pxi17 with SMTP id 17so2548409pxi.20 for ; Thu, 30 Dec 2010 03:19:05 -0800 (PST) MIME-Version: 1.0 Received: by 10.142.60.13 with SMTP id i13mr13123283wfa.322.1293707944982; Thu, 30 Dec 2010 03:19:04 -0800 (PST) Received: by 10.143.4.16 with HTTP; Thu, 30 Dec 2010 03:19:04 -0800 (PST) In-Reply-To: References: <20101217190347.GA2856@intel.com> Date: Thu, 30 Dec 2010 12:42:00 -0000 Message-ID: Subject: Re: PATCH: PR target/46519: Missing vzeroupper From: Uros Bizjak To: "H.J. Lu" Cc: gcc-patches@gcc.gnu.org, Richard Guenther , Jakub Jelinek , Mark Mitchell Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable 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-12/txt/msg01974.txt.bz2 On Wed, Dec 29, 2010 at 4:32 PM, H.J. Lu wrote: >> I think that due to these reasons, the patch should be committed to >> SVN even in this development stage. Even if the algorithm is not >> optimal, the patch demonstrably produces substantially better code. >> This feature has no impact on generic code without -mvzeroupper / >> -mavx switch, and since there are currently very few AVX users, >> negligible overall impact. >> >>> gcc/ >>> >>> 2010-12-18 =A0H.J. Lu =A0 >>> >>> =A0 =A0 =A0 =A0PR target/46519 >>> =A0 =A0 =A0 =A0* config/i386/i386.c (block_info_def): Remove referenced= , count >>> =A0 =A0 =A0 =A0and rescanned. >>> =A0 =A0 =A0 =A0(move_or_delete_vzeroupper_2): Updated. >>> =A0 =A0 =A0 =A0(move_or_delete_vzeroupper_1): Rewritten to avoid recurs= ive call. >>> =A0 =A0 =A0 =A0(rescan_move_or_delete_vzeroupper): Removed. >>> =A0 =A0 =A0 =A0(move_or_delete_vzeroupper): Repeat processing all basic= blocks >>> =A0 =A0 =A0 =A0until no basic block state is changed to used at exit. >>> >>> gcc/testsuite/ >>> >>> 2010-12-18 =A0H.J. Lu =A0 >>> >>> =A0 =A0 =A0 =A0PR target/46519 >>> =A0 =A0 =A0 =A0* gfortran.dg/pr46519-2.f90: New. >>> >> >> The patch is OK, but please allow a day or two for RMs (CC'd) to >> eventually comment. > > We will investigate LCM for 4.7. =A0In the meantime, here is =A0a small p= atch > on top of the current one. If the upper 128bits are never changed in a ba= sic > block, we can skip it in the later passes. =A0OK for trunk together with = the > current patch? > > 2010-12-29 H.J. Lu > > * config/i386/i386.c (upper_128bits_state): Update comments. > (block_info_def): Add unchanged. > (move_or_delete_vzeroupper_2): Short circuit if upper 128bits > are unchanged in the block. > OK, but please remove now redundant coments in @@ -60,14 +60,17 @@ along with GCC; see the file COPYING3. If not see enum upper_128bits_state { unknown =3D 0, /* Unknown. */ - unused, /* Not used or not referenced. */ - used /* Used or referenced. */ + unused, /* Not used. */ + used /* Used. */ }; Thanks, Uros.