[all-commits] [llvm/llvm-project] f71ad1: [AArch64] Add a target feature for AArch64StorePai...
David Green via All-commits
all-commits at lists.llvm.org
Sat Sep 30 03:40:41 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: f71ad19c04763b858e53e0e291698b769b7c2bfc
https://github.com/llvm/llvm-project/commit/f71ad19c04763b858e53e0e291698b769b7c2bfc
Author: David Green <david.green at arm.com>
Date: 2023-09-30 (Sat, 30 Sep 2023)
Changed paths:
M llvm/lib/Target/AArch64/AArch64.td
M llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp
M llvm/test/CodeGen/AArch64/aarch64-a57-fp-load-balancing.ll
M llvm/test/CodeGen/AArch64/argument-blocks-array-of-struct.ll
M llvm/test/CodeGen/AArch64/arm64-windows-calls.ll
M llvm/test/CodeGen/AArch64/ldrpre-ldr-merge.mir
M llvm/test/CodeGen/AArch64/no-sve-no-neon.ll
M llvm/test/CodeGen/AArch64/storepairsuppress_minsize.ll
Log Message:
-----------
[AArch64] Add a target feature for AArch64StorePairSuppress
The AArch64StorePairSuppress pass prevents the creation of STP under some
heuristics. Unfortunately it often prevents the creation of STP in cases where
it is obviously beneficial, and it doesn't match my understanding of
scheduling/cpu pipelining to prevent the creation of STP. From some
benchmarking, even on an in-order cpu where the scheduling is most important I
don't see it giving better results. In general the lower instruction count for
STP would be expected to give a slightly better cycle count.
As the pass specifically mentions the cyclone cpu, this patch adds a target
feature for FeatureStorePairSuppress, enabled for all the non-Arm cpus. This
has the effect of disabling it for all Arm cpus.
Differential Revision: https://reviews.llvm.org/D134646
More information about the All-commits
mailing list