[llvm-branch-commits] [llvm] [BOLT] Use BAT interfaces in YAMLProfileWriter::convert (PR #86219)
Maksim Panchenko via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Apr 1 15:50:34 PDT 2024
================
@@ -27,25 +28,55 @@ namespace bolt {
/// Set CallSiteInfo destination fields from \p Symbol and return a target
/// BinaryFunction for that symbol.
-static const BinaryFunction *setCSIDestination(const BinaryContext &BC,
- yaml::bolt::CallSiteInfo &CSI,
- const MCSymbol *Symbol) {
+static const BinaryFunction *
+setCSIDestination(const BinaryContext &BC, yaml::bolt::CallSiteInfo &CSI,
+ const MCSymbol *Symbol, const BoltAddressTranslation *BAT) {
CSI.DestId = 0; // designated for unknown functions
CSI.EntryDiscriminator = 0;
+ auto setBATSecondaryEntry = [&](const BinaryFunction *const Callee) {
+ // The symbol could be a secondary entry in a cold fragment.
+ ErrorOr<uint64_t> SymbolValue = BC.getSymbolValue(*Symbol);
+ if (SymbolValue.getError())
----------------
maksfb wrote:
Can we get a condition when `getFunctionForSymbol(Symbol)` return a function, but the symbol has no set value?
https://github.com/llvm/llvm-project/pull/86219
More information about the llvm-branch-commits
mailing list