This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH][ARM/AArch64][PR 60743] Reduce divider reservation duration in A53 pipeline decription
- From: Kyrill Tkachov <kyrylo dot tkachov at arm dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: Ramana Radhakrishnan <ramana dot radhakrishnan at arm dot com>, Richard Earnshaw <Richard dot Earnshaw at arm dot com>, bernd dot edlinger at hotmail dot de
- Date: Fri, 04 Apr 2014 13:35:54 +0100
- Subject: [PATCH][ARM/AArch64][PR 60743] Reduce divider reservation duration in A53 pipeline decription
- Authentication-results: sourceware.org; auth=none
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.