aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
diff options
context:
space:
mode:
authorAmir Ayupov <aaupov@fb.com>2025-06-17 06:28:27 -0700
committerGitHub <noreply@github.com>2025-06-17 06:28:27 -0700
commit9fed480f183d9cfa784228cd77b2c0a642fca697 (patch)
tree415dfa32b84dd0c8632e9cf68aa6bd31cbaab7f0 /llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
parent816ab1af0da1dc833f487933e7d6fb470d844001 (diff)
downloadllvm-9fed480f183d9cfa784228cd77b2c0a642fca697.zip
llvm-9fed480f183d9cfa784228cd77b2c0a642fca697.tar.gz
llvm-9fed480f183d9cfa784228cd77b2c0a642fca697.tar.bz2
[BOLT] Explicitly check for returns when extending call continuation profile (#143295)
Call continuation logic relies on assumptions about fall-through origin: - the branch is external to the function, - fall-through start is at the beginning of the block, - the block is not an entry point or a landing pad. Leverage trace information to explicitly check whether the origin is a return instruction, and defer to checks above only in case of DSO-external branch source. This covers both regular and BAT cases, addressing call continuation fall-through undercounting in the latter mode, which improves BAT profile quality metrics. For example, for one large binary: - CFG discontinuity 21.83% -> 0.00%, - CFG flow imbalance 10.77%/100.00% -> 3.40%/13.82% (weighted/worst) - CG flow imbalance 8.49% —> 8.49%. Depends on #143289. Test Plan: updated callcont-fallthru.s
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopRotationUtils.cpp')
0 files changed, 0 insertions, 0 deletions