aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
diff options
context:
space:
mode:
authorAleksandr Popov <a.popov.tmb@gmail.com>2023-07-02 08:32:57 +0200
committerAleksandr Popov <a.popov.tmb@gmail.com>2023-07-02 09:23:43 +0200
commit22f21738370c15fbdd26006583027f8667e0461d (patch)
tree3a20ae3fa1e7308479596d6fad9ac7eb1d68fc9f /clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
parent564713c47175d9f61fe8e18e750fb7f7b486d533 (diff)
downloadllvm-22f21738370c15fbdd26006583027f8667e0461d.zip
llvm-22f21738370c15fbdd26006583027f8667e0461d.tar.gz
llvm-22f21738370c15fbdd26006583027f8667e0461d.tar.bz2
[AArch64] Add PredictableSelectIsExpensive feature to all the cpus that have FeatureEnableSelectOptimize
In the revision https://reviews.llvm.org/D138990 was enabled select optimize pass for AArch64. We were doing some benchmarking on the Neoverse V1 and were experimenting with select optimize heuristics. We found out that there are some additional profitable transformations to predictable branches (with prediction rate > 75% according to Agner Fog's rule of thumb) can be done by base heuristic from SelectOptimize pass or by optimizeSelectInst form CodeGenPrepare pass. But they are blocked on the Neoverse V1, since PredictableSelectIsExpensive feature is not set for that subtarget. Note that to achieve this results we also changed predictable branch threshold from 99% to 75% Looks like it makes sense to add this feature to all targets where was enabled select optimize pass in the https://reviews.llvm.org/D138990. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D143162
Diffstat (limited to 'clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions