From patchwork Wed Jul 14 06:26:59 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [ARM] Improve pipeline description for NEON Date: Tue, 13 Jul 2010 20:26:59 -0000 From: Jie Zhang X-Patchwork-Id: 58851 Message-Id: <4C3D58B3.4090707@codesourcery.com> To: GCC Patches 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")