This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[ARM] Improve pipeline description for NEON
- From: Jie Zhang <jie at codesourcery dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 14 Jul 2010 14:26:59 +0800
- Subject: [ARM] Improve pipeline description for NEON
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,
--
Jie Zhang
CodeSourcery
* 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")