From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25903 invoked by alias); 14 Dec 2012 11:44:47 -0000 Received: (qmail 25894 invoked by uid 22791); 14 Dec 2012 11:44:46 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,MSGID_MULTIPLE_AT,RCVD_IN_DNSWL_LOW,TW_XT X-Spam-Check-By: sourceware.org Received: from service87.mimecast.com (HELO service87.mimecast.com) (91.220.42.44) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 14 Dec 2012 11:44:42 +0000 Received: from cam-owa1.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.21]) by service87.mimecast.com; Fri, 14 Dec 2012 11:44:40 +0000 Received: from E102352xp ([10.1.255.212]) by cam-owa1.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.0); Fri, 14 Dec 2012 11:44:39 +0000 From: "Ian Bolton" To: "'Richard Henderson'" Cc: References: <000001cdd956$e9047250$bb0d56f0$@bolton@arm.com> <50CA3DC4.3020109@redhat.com> In-Reply-To: <50CA3DC4.3020109@redhat.com> Subject: RE: [PATCH, AArch64] Make zero_extends explicit for common SImode patterns Date: Fri, 14 Dec 2012 11:44:00 -0000 Message-ID: <000001cdd9f0$5e9390c0$1bbab240$@bolton@arm.com> MIME-Version: 1.0 X-MC-Unique: 112121411444013101 Content-Type: text/plain; charset=WINDOWS-1252 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-12/txt/msg00966.txt.bz2 Hi Richard, > + "add\\t%w0, %w2, %w, xt" > > ^^^ %w1 Got spot. I guess that pattern hasn't fired yet then! I'll fix it. > > This patch significantly reduces the number of redundant > > uxtw instructions seen in a variety of programs. > > > > (There are further patterns that can be done, but I have them > > in a separate patch that's still in development.) >=20 > What do you get if you enable flag_ree, as we do for x86_64? > In theory this should avoid even more extensions... >=20 >=20 > C.f. common/config/i386/i386-common.c: >=20 > static const struct default_options ix86_option_optimization_table[] =3D > { > /* Enable redundant extension instructions removal at -O2 and > higher. */ > { OPT_LEVELS_2_PLUS, OPT_free, NULL, 1 }, >=20 I should have said that I am indeed running with REE enabled. It has some impact (about 70 further UXTW removed from the set of binaries I've been building) and seems to mostly be good across basic blocks within the same function. As far as I can tell, there is no downside to REE, so I think it should be enabled by default for O2 or higher on AArch64 too. I'll prepare a new patch ...