[all-commits] [llvm/llvm-project] b46cc3: [BOLT] Skip data-hole filling unless data reorderi...
Rafael Auler via All-commits
all-commits at lists.llvm.org
Fri Aug 7 16:57:51 PDT 2026
Branch: refs/heads/users/rafaelauler/datareord
Home: https://github.com/llvm/llvm-project
Commit: b46cc33b0944820294f37aaa2e5eb549acc7505a
https://github.com/llvm/llvm-project/commit/b46cc33b0944820294f37aaa2e5eb549acc7505a
Author: Rafael Auler <rafaelauler at meta.com>
Date: 2026-08-07 (Fri, 07 Aug 2026)
Changed paths:
M bolt/include/bolt/Utils/CommandLineOpts.h
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Passes/ReorderData.cpp
M bolt/lib/Utils/CommandLineOpts.cpp
Log Message:
-----------
[BOLT] Skip data-hole filling unless data reordering is enabled
BinaryContext::postProcessSymbolTable unconditionally called
fixBinaryDataHoles(), which walks every allocatable section and, for
each gap in its address space, either grows a zero-sized data symbol
or creates a synthetic "HOLEat" BinaryData (plus an MCSymbol and
GlobalSymbols/BinaryDataMap entries). This machinery was introduced
(0e4d86bf, 2017) for one purpose: to give static data reordering
(-reorder-data) a movable object covering every byte of a section. It
has no other consumer.
On a large binary, these synthetic objects are live from
buildFunctionsCFG through the end of the run and, at the RSS peak
(during debug info rewriting), fixBinaryDataHoles accounted for 1669
MB (2.5%) of peak RSS -- memory spent entirely for a feature that is
off by default.
Gate fixBinaryDataHoles() (and the zero-sized-symbol validation loop
that presumes it ran) on a non-empty opts::ReorderData, keeping
generateSymbolHashes() unconditional.
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