diff options
| author | Pranav Kant <prka@google.com> | 2025-11-10 11:54:16 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-10 11:54:16 -0800 |
| commit | 2f54efd1bf96f08e564dbd092f65c04b16e9d4dc (patch) | |
| tree | aecf75f5c6f85381189094f58759e66df40e29ba /lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedFrameProviderPythonInterface.cpp | |
| parent | 70a6475fdd6cb80e9c4f0fa3c523ab806dfeb46b (diff) | |
[MachineOutliner] Don't outline ADRP pair to avoid incorrect ICF (#160232)
On AArch64, ADRP and its user instructions (LDR, ADD, etc.), that are
referencing a GOT symbol, when separated into different functions by
machine outliner exposes a correctness issue in the linker ICF. In such
cases, user instructions can end up pointing to a folded section (with
its canonical folded symbol), while ADRP instruction point to a GOT
entry corresponding to the original symbol. This leads to loading from
incorrect memory address after ICF. #129122 explains how this can happen
in detail.
This addresses #131660 which should fix two things:
1. Hide the correctness issue described above in the LLVM linker.
2. Allows optimizations that could relax GOT addressing to PC-relative
addressing.
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedFrameProviderPythonInterface.cpp')
0 files changed, 0 insertions, 0 deletions
