Files
llvm-project/lld/docs/ReleaseNotes.rst
Zhaoxuan Jiang fd609e5d33 [lld] Glob-based BP compression sort groups (#185661)
Add
--bp-compression-sort-section=<glob>[=<layout_priority>[=<match_priority>]]
to let users split input sections into multiple compression groups, run
balanced partitioning independently per group, and leave out sections
that are poor candidates for BP. This replaces the old coarse
--bp-compression-sort with a more explicit, user-controlled one.

In ELF, the glob matches input section names (.text.unlikely.cold1). In
Mach-O, it matches the concatenated segment+section name (__TEXT__text).

layout_priority controls group placement in the final layout.
match_priority resolves conflicts when multiple globs match the same
section: explicit priority beats positional matching, and among
positional specs the last match wins.

A CRTP hook getCompressionSubgroupKey() allows backends to further
subdivide glob groups into independent BP instances. This allows Mach-O
backend to separate cold functions via N_COLD_FUNC in the future.

The deprecated --bp-compression-sort option keeps its existing
function/data behavior by assigning sections to fixed legacy groups.
2026-04-01 17:53:08 -07:00

64 lines
2.0 KiB
ReStructuredText

.. If you want to modify sections/contents permanently, you should modify both
ReleaseNotes.rst and ReleaseNotesTemplate.txt.
===========================
lld |release| Release Notes
===========================
.. contents::
:local:
.. only:: PreRelease
.. warning::
These are in-progress notes for the upcoming LLVM |release| release.
Release notes for previous releases can be found on
`the Download Page <https://releases.llvm.org/download.html>`_.
Introduction
============
This document contains the release notes for the lld linker, release |release|.
Here we describe the status of lld, including major improvements
from the previous release. All lld releases may be downloaded
from the `LLVM releases web site <https://llvm.org/releases/>`_.
Non-comprehensive list of changes in this release
=================================================
ELF Improvements
----------------
* Added ``--bp-compression-sort-section=<glob>[=<layout_priority>[=<match_priority>]]``,
replacing the old coarse ``--bp-compression-sort`` modes with a way to split
input sections into multiple compression groups, run balanced partitioning
independently per group, and leave out sections that are poor candidates for
BP.
``layout_priority`` controls group placement order (lower value = placed
first, default 0). ``match_priority`` resolves conflicts when multiple globs
match the same section (lower value = higher priority; explicit priority
beats positional last-match-wins; default: positional). In ELF, the glob
matches input section names (e.g. ``.text.unlikely.code1``).
Breaking changes
----------------
COFF Improvements
-----------------
MinGW Improvements
------------------
MachO Improvements
------------------
* ``--bp-compression-sort-section`` now accepts optional layout and match
priorities (same syntax as ELF). In Mach-O, the glob matches the
concatenated segment+section name (e.g. ``__TEXT__text``).
WebAssembly Improvements
------------------------
Fixes
#####