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]

[PATCH][ARM/AArch64][PR 60743] Reduce divider reservation duration in A53 pipeline decription


Hi all,

In PR 60743 it is noted that the genautomata computation has increased a lot in both size and time due to my recently added a53 scheduling additions. This patch attempts to mitigate that by reducing the large reservation duration of the dividers that is causing a state-space explosion in the automaton. Without this patch I've observed a memory usage of around 750MB on my host machine while running genautomata. With this patch, it is about 410MB and much faster.

Bernd, can you try this out and see if the genautomata behaviour is acceptable on your system now?

Bootstrapped and tested on aarch64-linux-gnu and arm-none-linux-gnueabihf.
Looked at various testcases involving the dividers to make sure that codegen is not affected.

Ok for trunk?
Thanks,
Kyrill

2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

    PR bootstrap/60743
    * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
    duration.
    (cortex_a53_fdivd): Likewise.
diff --git a/gcc/config/arm/cortex-a53.md b/gcc/config/arm/cortex-a53.md
index b131c81..a629bd6 100644
--- a/gcc/config/arm/cortex-a53.md
+++ b/gcc/config/arm/cortex-a53.md
@@ -245,12 +245,12 @@
 (define_insn_reservation "cortex_a53_fdivs" 14
   (and (eq_attr "tune" "cortexa53")
        (eq_attr "type" "fdivs, fsqrts"))
-  "cortex_a53_slot0, cortex_a53_fp_div_sqrt * 13")
+  "cortex_a53_slot0, cortex_a53_fp_div_sqrt * 5")
 
 (define_insn_reservation "cortex_a53_fdivd" 29
   (and (eq_attr "tune" "cortexa53")
        (eq_attr "type" "fdivd, fsqrtd"))
-  "cortex_a53_slot0, cortex_a53_fp_div_sqrt * 28")
+  "cortex_a53_slot0, cortex_a53_fp_div_sqrt * 8")
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; ARMv8-A Cryptographic extensions.

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