This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r247631 - in /trunk/gcc: ChangeLog config/arm/a...
- From: wilco at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Fri, 05 May 2017 09:40:02 -0000
- Subject: r247631 - in /trunk/gcc: ChangeLog config/arm/a...
Author: wilco
Date: Fri May 5 09:40:01 2017
New Revision: 247631
URL: https://gcc.gnu.org/viewcvs?rev=247631&root=gcc&view=rev
Log:
Code scheduling for Cortex-A53 isn't as good as it could be. It turns out
code runs faster overall if we place loads and stores with a dependency
closer together. To achieve this effect, this patch adds a bypass between
cortex_a53_load1 and cortex_a53_load*/cortex_a53_store* if the result of an
earlier load is used in an address calculation. This significantly improved
benchmark scores in a proprietary benchmark suite.
gcc/
* config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
New function.
(arm_early_store_addr_dep_ptr): Likewise.
* config/arm/aarch-common-protos.h
(arm_early_load_addr_dep_ptr): Add prototype.
(arm_early_store_addr_dep_ptr): Likewise.
* config/arm/cortex-a53.md: Add new bypasses.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/arm/aarch-common-protos.h
trunk/gcc/config/arm/aarch-common.c
trunk/gcc/config/arm/cortex-a53.md