This is the mail archive of the gcc-cvs@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]

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


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