aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp
diff options
context:
space:
mode:
authorDaniel Hoekwater <hoekwater@google.com>2023-08-01 23:55:31 +0000
committerDaniel Hoekwater <hoekwater@google.com>2023-08-21 16:41:02 +0000
commit46d2d7599d9ed5e68fb53e910feb10d47ee2667b (patch)
tree88914d56a692e75b370d455a3525ce2c55a82799 /clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp
parent133b24a3943a3585bab919bc076325bb550164f7 (diff)
downloadllvm-46d2d7599d9ed5e68fb53e910feb10d47ee2667b.zip
llvm-46d2d7599d9ed5e68fb53e910feb10d47ee2667b.tar.gz
llvm-46d2d7599d9ed5e68fb53e910feb10d47ee2667b.tar.bz2
[AArch64][CodeGen] Avoid inverting hot branches during relaxation
Current behavior for relaxing out-of-range conditional branches is to invert the conditional and insert a fallthrough unconditional branch to the original destination. This approach biases the branch predictor in the wrong direction, which can degrading performance. Machine function splitting introduces many rarely-taken cross-section conditional branches, which are improperly relaxed. Avoid inverting these branches; instead, retarget them to trampolines at the end of the function. Doing so increases the runtime cost of jumping to cold code but eliminates the misprediction cost of jumping to hot code. Differential Revision: https://reviews.llvm.org/D156837
Diffstat (limited to 'clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp')
0 files changed, 0 insertions, 0 deletions