[all-commits] [llvm/llvm-project] 0b01b9: [LLD][COFF] Deduplicate common chunks when linking...

Joshua Cranmer via All-commits all-commits at lists.llvm.org
Fri Oct 24 13:08:11 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0b01b96864983c4b150776b869a3d048b0d50e2c
      https://github.com/llvm/llvm-project/commit/0b01b96864983c4b150776b869a3d048b0d50e2c
  Author: Joshua Cranmer <joshua.cranmer at intel.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M lld/COFF/Chunks.cpp
    M lld/COFF/Chunks.h
    M lld/COFF/Symbols.h
    M lld/COFF/Writer.cpp
    A lld/test/COFF/common-dedup.ll

  Log Message:
  -----------
  [LLD][COFF] Deduplicate common chunks when linking COFF files. (#162553)

This fixes [issue
162148](https://github.com/llvm/llvm-project/issues/162148).

Common symbols are intended to have only a single version of the data
present in the final executable. The MSVC linker is able to successfully
deduplicate these chunks. If you have an application with a large number
of translation units with a large block of common data (this is
possible, for example, with Fortran code), then failing to deduplicate
these chunks can make the data size so large that the resulting
executable fails to load.

The logic in this patch doesn't catch all of the potential cases for
deduplication, but it should catch the most common ones.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list