[lld] [lld] Merge equivalent symbols found during ICF (PR #134342)
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sat Apr 12 14:10:42 PDT 2025
================
@@ -333,6 +333,28 @@ bool ICF<ELFT>::equalsConstant(const InputSection *a, const InputSection *b) {
: constantEq(a, ra.relas, b, rb.relas);
}
+template <class RelTy>
+static SmallVector<Symbol *> getReloc(const InputSection *sec,
----------------
MaskRay wrote:
I was concerned about the extra relocation scanning. However, it seems unavoidable after taking a closer took.
Around line 581, `symbolMap.insert(std::make_pair(replacedSyms[i], syms[i]));` inside `forEachClassRange` (parallel) looks like unsafe concurrent updates of the unordered map.
https://github.com/llvm/llvm-project/pull/134342
More information about the llvm-commits
mailing list