diff options
author | Amir Ayupov <aaupov@fb.com> | 2025-07-25 13:54:37 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-25 13:54:37 +0200 |
commit | a850912de18cf5dd5d92837bb159bf227ef830d6 (patch) | |
tree | e05a2203a3e4e369394c983926e5994cf47f8d25 /llvm/lib/CodeGen/MachineFunction.cpp | |
parent | e38f98f535f6e2ce2b42ea0413919f87b1239964 (diff) | |
download | llvm-a850912de18cf5dd5d92837bb159bf227ef830d6.zip llvm-a850912de18cf5dd5d92837bb159bf227ef830d6.tar.gz llvm-a850912de18cf5dd5d92837bb159bf227ef830d6.tar.bz2 |
[BOLT] Require CFG in BAT mode (#150488)
`getFallthroughsInTrace` requires CFG for functions not covered by BAT,
even in BAT/fdata mode. BAT-covered functions go through special
handling in fdata (`BAT->getFallthroughsInTrace`) and YAML
(`DataAggregator::writeBATYAML`) modes.
Since all modes (BAT/no-BAT, YAML/fdata) now need disassembly/CFG
construction:
- drop special BAT/fdata handling that omitted disassembly/CFG in
`RewriteInstance::run`, enabling *CFG for all non-BAT functions*,
- switch `getFallthroughsInTrace` to check if a function has CFG,
- which *allows emitting profile for non-simple functions* in all modes.
Previously, traces in non-simple functions were reported as invalid/
mismatching disassembled function contents. This change reduces the
number of such invalid traces and increases the number of profiled
functions. These functions may participate in function reordering via
call graph profile.
Test Plan: updated unclaimed-jt-entries.s
Diffstat (limited to 'llvm/lib/CodeGen/MachineFunction.cpp')
0 files changed, 0 insertions, 0 deletions