diff options
author | Yuta Mukai <mukai.yuta@fujitsu.com> | 2024-02-02 10:33:44 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-02 10:33:44 +0900 |
commit | 70eab122bceb94b15218c86db7045ff2448ea979 (patch) | |
tree | b955a7d32e650779b8c474a5da714dadb2394cbd /llvm/lib/CodeGen/CommandFlags.cpp | |
parent | cc0d752f345f0e8995bec8807e3f365f38864fb6 (diff) | |
download | llvm-70eab122bceb94b15218c86db7045ff2448ea979.zip llvm-70eab122bceb94b15218c86db7045ff2448ea979.tar.gz llvm-70eab122bceb94b15218c86db7045ff2448ea979.tar.bz2 |
[AArch64][MachinePipeliner] Add pipeliner support for AArch64 (#79589)
Add AArch64 implementations for the interfaces of MachinePipeliner pass.
The pass is disabled by default for AArch64. It is enabled by specifying
--aarch64-enable-pipeliner.
5 tests in llvm-test-suites show performance improvement by more than 5%
on a Neoverse V1 processor.
| test | improvement |
| ---------------------------------------------------------------- |
-----------:|
| MultiSource/Benchmarks/TSVC/Recurrences-dbl/Recurrences-dbl.test | 16%
|
| MultiSource/Benchmarks/TSVC/Recurrences-dbl/Recurrences-flt.test | 16%
|
| SingleSource/Benchmarks/Adobe-C++/loop_unroll.test | 14% |
| SingleSource/Benchmarks/Misc/flops-5.test | 13% |
| SingleSource/Benchmarks/BenchmarkGame/spectral-norm.test | 6% |
(base flags: -mcpu=neoverse-v1 -O3 -mrecip, flags for pipelining: -mllvm
-aarch64-enable-pipeliner -mllvm
-pipeliner-max-stages=100 -mllvm -pipeliner-max-mii=100 -mllvm
-pipeliner-enable-copytophi=0)
On the other hand, there are cases of significant performance
degradation. Algorithm improvements and adding the option/pragma will be
needed in the future.
Diffstat (limited to 'llvm/lib/CodeGen/CommandFlags.cpp')
0 files changed, 0 insertions, 0 deletions