This is the mail archive of the 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 usually don't set "type" attribute, which will default to "alu". Then "cortex_a8_alu" in would apply. It's not correct. This patch fixes it.

Tested on arm-none-eabi for NEON. Is it OK?

Jie Zhang
	* config/arm/ (cortex_a8_alu): Don't use
	cortex_a8_default when neon_type is not none.

Index: config/arm/
--- config/arm/	(revision 162168)
+++ config/arm/	(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")))

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