aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/AST/ByteCode/Compiler.cpp
diff options
context:
space:
mode:
authorHans Wennborg <hans@chromium.org>2025-05-13 10:41:47 +0200
committerHans Wennborg <hans@chromium.org>2025-05-13 10:57:46 +0200
commitfd3fecfc0936703f2715fe6fea890e81b0b3c2ac (patch)
tree2d03f26a61b19cdd2ce85d0f9e3d63c041c14a7e /clang/lib/AST/ByteCode/Compiler.cpp
parent98763433e66dd91bf5f10b1daf03d9373f07912a (diff)
downloadllvm-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