From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10713 invoked by alias); 22 Dec 2011 09:54:33 -0000 Received: (qmail 10701 invoked by uid 22791); 22 Dec 2011 09:54:32 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW 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; Thu, 22 Dec 2011 09:53:49 +0000 Received: from cam-owa2.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.21]) by service87.mimecast.com; Thu, 22 Dec 2011 09:53:47 +0000 Received: from [10.1.69.67] ([10.1.255.212]) by cam-owa2.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 22 Dec 2011 09:53:46 +0000 Message-ID: <4EF2FE29.1060204@arm.com> Date: Thu, 22 Dec 2011 10:12:00 -0000 From: Richard Earnshaw User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:6.0.2) Gecko/20110902 Thunderbird/6.0.2 MIME-Version: 1.0 To: Xinyu Qi CC: Ramana Radhakrishnan , "gcc-patches@gcc.gnu.org" Subject: Re: PING: [PATCH, ARM, iWMMXt][4/5]: WMMX machine description References: <4737A960563B524DA805CA602BE04B306010E1F4E9@SC-VEXCH2.marvell.com> <4737A960563B524DA805CA602BE04B30602611FB90@SC-VEXCH2.marvell.com> <4737A960563B524DA805CA602BE04B30602925062B@SC-VEXCH2.marvell.com> <4EE8DD9D.3060508@arm.com> <4737A960563B524DA805CA602BE04B3063206B1776@SC-VEXCH2.marvell.com> In-Reply-To: <4737A960563B524DA805CA602BE04B3063206B1776@SC-VEXCH2.marvell.com> X-MC-Unique: 111122209534701101 Content-Type: text/plain; charset=ISO-8859-15 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: 2011-12/txt/msg01606.txt.bz2 On 22/12/11 06:38, Xinyu Qi wrote: > At 2011-12-15 01:32:13,"Richard Earnshaw" wrote: >> On 24/11/11 01:33, Xinyu Qi wrote: >>> Hi Ramana, >>> >>> I solve the conflict, please try again. The new diff is attached. >>> >>> Thanks, >>> Xinyu >>> >>> At 2011-11-19 07:36:15,"Ramana Radhakrishnan" >> wrote: >>>> >>>> Hi Xinyu, >>>> >>>> This doesn't apply cleanly currently on trunk and the reject appears >>>> to come from iwmmxt.md and I've not yet investigated why. >>>> >>>> Can you have a look ? >>>> >> >> This patch is NOT ok. >> >> You're adding features that were new in iWMMXt2 (ie not in the original >> implementation) but you've provided no means by which the compiler can >> detect which operations are only available on the new cores. >=20 > Hi Richard, >=20 > All of the WMMX chips support WMMX2 instructions. This may be true for Marvell's current range of processors, but I find it hard to reconcile with the assembler support in GAS, which clearly distinguishes between iWMMXT and iWMMXT2 instruction sets. Are you telling me that no cores were ever manufactured (even by Intel) that only supported iWMMXT? I'm concerned that this patch will break support for existing users who have older chips (for GCC we have to go through a deprecation cycle if we want to drop support for something we now believe is no-longer worth maintaining). > What I do is to complement the WMMX2 intrinsic support in GCC. I understand that, and I'm not saying the patch can never go in; just that it needs to separate out the support for the different architecture variants. > I don't think it is necessary for users to consider whether one WMMX insn= is a WMMX2 insn or not. Users don't (unless they want their code to run on legacy processors that only support the original instruction set), but the compiler surely must know what it is targeting. Remember that the instruction patterns are not entirely black boxes, the compiler can do optimizations on intrinsics (it's one of the reasons why they are better than inline assembly). Unless the compiler knows exactly what instructions are legal, it could end up optimizing something that started as a WMMX insn into something that's a WMMX2 insn (for example, propagating a constant into a vector shift expression). R.