diff options
author | Hans Wennborg <hans@chromium.org> | 2025-05-13 10:41:47 +0200 |
---|---|---|
committer | Hans Wennborg <hans@chromium.org> | 2025-05-13 10:57:46 +0200 |
commit | fd3fecfc0936703f2715fe6fea890e81b0b3c2ac (patch) | |
tree | 2d03f26a61b19cdd2ce85d0f9e3d63c041c14a7e /clang/lib/AST/ByteCode/Compiler.cpp | |
parent | 98763433e66dd91bf5f10b1daf03d9373f07912a (diff) | |
download | llvm-fd3fecfc0936703f2715fe6fea890e81b0b3c2ac.zip llvm-fd3fecfc0936703f2715fe6fea890e81b0b3c2ac.tar.gz llvm-fd3fecfc0936703f2715fe6fea890e81b0b3c2ac.tar.bz2 |
Revert "[lld] Merge equivalent symbols found during ICF (#134342)"
The change would also merge *non-equivalent* symbols under some circumstances,
see comment with a reproducer on the PR.
> Fixes a correctness issue for AArch64 when ADRP and LDR instructions are
> outlined in separate sections and sections are fed to ICF for
> deduplication.
>
> See test case (based on
> https://github.com/llvm/llvm-project/issues/129122) for details. All
> rodata.* sections are folded into a single section with ICF. This leads
> to all f2_* function sections getting folded into one (as their
> relocation target symbols g* belong to .rodata.g* sections that have
> already been folded into one). Since relocations still refer original g*
> symbols, we end up creating duplicate GOT entry for all such symbols.
> This PR addresses that by tracking such folded symbols and create one
> GOT entry for all such symbols.
>
> Fixes https://github.com/llvm/llvm-project/issues/129122
>
> Co-authored by: @jyknight
This reverts commit 8389d6fad76bd880f02bddce7f0f2612ff0afc40.
Diffstat (limited to 'clang/lib/AST/ByteCode/Compiler.cpp')
0 files changed, 0 insertions, 0 deletions