From patchwork Wed Jul 14 06:26:59 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhang X-Patchwork-Id: 58851 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 652D0B6F0E for ; Wed, 14 Jul 2010 16:27:11 +1000 (EST) Received: (qmail 5876 invoked by alias); 14 Jul 2010 06:27:10 -0000 Received: (qmail 5864 invoked by uid 22791); 14 Jul 2010 06:27:09 -0000 X-SWARE-Spam-Status: No, hits=-1.9 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, 14 Jul 2010 06:27:03 +0000 Received: (qmail 21783 invoked from network); 14 Jul 2010 06:27:01 -0000 Received: from unknown (HELO ?192.168.0.124?) (jie@127.0.0.2) by mail.codesourcery.com with ESMTPA; 14 Jul 2010 06:27:01 -0000 Message-ID: <4C3D58B3.4090707@codesourcery.com> Date: Wed, 14 Jul 2010 14:26:59 +0800 From: Jie Zhang User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.4) Gecko/20100608 Lightning/1.0b2 Thunderbird/3.1 MIME-Version: 1.0 To: GCC Patches Subject: [ARM] Improve pipeline description for NEON X-IsSubscribed: yes 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 I found many NEON instructions were using cortex_a8_default in scheduler instead of corresponding NEON reservations. The instruction patterns in neon.md usually don't set "type" attribute, which will default to "alu". Then "cortex_a8_alu" in cortex-a8.md would apply. It's not correct. This patch fixes it. Tested on arm-none-eabi for NEON. Is it OK? Regards, * config/arm/cortex-a8.md (cortex_a8_alu): Don't use cortex_a8_default when neon_type is not none. Index: config/arm/cortex-a8.md =================================================================== --- config/arm/cortex-a8.md (revision 162168) +++ config/arm/cortex-a8.md (working copy) @@ -87,8 +87,9 @@ ;; (source read in E2 and destination available at the end of that cycle). (define_insn_reservation "cortex_a8_alu" 2 (and (eq_attr "tune" "cortexa8") - (ior (and (eq_attr "type" "alu") - (not (eq_attr "insn" "mov,mvn"))) + (ior (and (and (eq_attr "type" "alu") + (eq_attr "neon_type" "none")) + (not (eq_attr "insn" "mov,mvn"))) (eq_attr "insn" "clz"))) "cortex_a8_default")