aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorFlorian Hahn <flo@fhahn.com>2025-02-27 14:42:45 +0000
committerGitHub <noreply@github.com>2025-02-27 14:42:45 +0000
commit46a13a5b174b031b399606f92ca049cac8aa12a0 (patch)
tree58901679f1de6afdd8a22f7f1684c2ee8634046f /clang/lib/CodeGen/CodeGenModule.cpp
parentcad1de50ba06db8288da0e20c9aeffed328b8fce (diff)
downloadllvm-46a13a5b174b031b399606f92ca049cac8aa12a0.zip
llvm-46a13a5b174b031b399606f92ca049cac8aa12a0.tar.gz
llvm-46a13a5b174b031b399606f92ca049cac8aa12a0.tar.bz2
[AArch64] Runtime-unroll small multi-exit loops on Apple Silicon. (#124751)
Extend unrolling preferences to allow more aggressive unrolling of search loops with 2 exits, building on the TTI hook added in https://github.com/llvm/llvm-project/commit/ad9da92cf6f735747ef04fd56937e1d76819e503. In combination with https://github.com/llvm/llvm-project/commit/eac23a5b971362cda3c646e018b9f26d0bc1ff3a this enables unrolling loops like std::find, which can improve performance significantly (+15% end-to-end on a workload that makes heavy use of std::find). It increase the total number of unrolled loops by ~2.5% across a very large corpus of workloads. For SPEC2017, +1.6% more loops are unrolled and the following workloads increase in size (`__text`): workload base patch 500.perlbench_r 1682884.00 1694104.00 0.7% 523.xalancbmk_r 3001716.00 3003832.00 0.1% PR: https://github.com/llvm/llvm-project/pull/124751
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions