[ARM] Reduce size of arm1020e automaton
authorktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Mar 2016 10:39:10 +0000 (10:39 +0000)
committerktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Mar 2016 10:39:10 +0000 (10:39 +0000)
* config/arm/arm1020e.md (1020call_op): Reduce reservation
duration.
(v10_fdivs): Likewise.
(v10_fdivd): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234422 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/arm/arm1020e.md

index f78ff93..f425113 100644 (file)
@@ -1,5 +1,12 @@
 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
+       * config/arm/arm1020e.md (1020call_op): Reduce reservation
+       duration.
+       (v10_fdivs): Likewise.
+       (v10_fdivd): Likewise.
+
+2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
        PR driver/70132
        * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
        to not call fclose twice on file.
index 7cdab57..84a300d 100644 (file)
       (eq_attr "type" "branch"))
  "1020a_e")
 
-;; The latency for a call is not predictable.  Therefore, we use 32 as
-;; roughly equivalent to positive infinity.
+;; The latency for a call is not predictable.  Therefore, we model as blocking
+;; execution for a number of cycles but we can't do anything more accurate
+;; than that.
 
 (define_insn_reservation "1020call_op" 32
  (and (eq_attr "tune" "arm1020e,arm1022e")
       (eq_attr "type" "call"))
- "1020a_e*32")
+ "1020a_e*4")
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; VFP
 (define_insn_reservation "v10_fdivs" 18
  (and (eq_attr "vfp10" "yes")
       (eq_attr "type" "fdivs, fsqrts"))
- "1020a_e+v10_ds*14")
+ "1020a_e+v10_ds*4")
 
 (define_insn_reservation "v10_fdivd" 32
  (and (eq_attr "vfp10" "yes")
       (eq_attr "type" "fdivd, fsqrtd"))
- "1020a_e+v10_fmac+v10_ds*28")
+ "1020a_e+v10_fmac+v10_ds*4")
 
 (define_insn_reservation "v10_floads" 4
  (and (eq_attr "vfp10" "yes")