This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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")
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]