diff options
author | Mingming Liu <mingmingl@google.com> | 2024-01-22 10:36:03 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-22 10:36:03 -0800 |
commit | 5ce286849a0cc605210031411265c2a84fc6c633 (patch) | |
tree | df41858a0952947e2bc4deae123e6bc1c744a8e6 /lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp | |
parent | f4c2ee12684a6b4857c9e6777ba53e02555978ba (diff) | |
download | llvm-5ce286849a0cc605210031411265c2a84fc6c633.zip llvm-5ce286849a0cc605210031411265c2a84fc6c633.tar.gz llvm-5ce286849a0cc605210031411265c2a84fc6c633.tar.bz2 |
[CGProfile] Use callee's PGO name when caller->callee is an indirect call. (#78610)
- With PGO, indirect call edges are constructed using value profiles, and the profile address is mapped to a function's PGO name. The PGO name is computed using a functions linkage before LTO internalization or global promotion.
- With ThinLTO, local functions [could be
promoted](https://github.com/llvm/llvm-project/blob/2663d2cb9c9361f0b234c40a0f50c7ba0748eb26/llvm/lib/Transforms/Utils/FunctionImportUtils.cpp#L288) to have external linkage; and with
[full](https://github.com/llvm/llvm-project/blob/2663d2cb9c9361f0b234c40a0f50c7ba0748eb26/llvm/lib/LTO/LTO.cpp#L1328)
or
[thin](https://github.com/llvm/llvm-project/blob/2663d2cb9c9361f0b234c40a0f50c7ba0748eb26/llvm/lib/LTO/LTO.cpp#L448)
LTO, global functions could be internalized. Edge construction should use a function's PGO name before its linkage is updated.
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp')
0 files changed, 0 insertions, 0 deletions