[PATCH] D121351: [lld-macho][nfc] Allow Defined symbols to be placed in binding sections

Jez Ng via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 9 20:43:07 PST 2022


int3 created this revision.
int3 added reviewers: lld-macho, modimo.
Herald added projects: lld-macho, All.
int3 requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Previously, we only allowed this for DylibSymbols. However, in order to
properly support `-flat_namespace` as well as `-interposable`, we need
to allow this for Defined symbols too. Therefore we hoist the
`lazyBindOffset` and the `stubsHelperIndex` into the parent Symbol
class.

The actual change to support interposition under `-flat_namespace` is in
D119294: [lld-macho] -flat_namespace for dylibs should make all externs interposable <https://reviews.llvm.org/D119294>; the NFC changes here have been split out for easier review.

Perf regression isn't stat sig on my 3.2 GHz 16-Core Intel Xeon W linking
chromium_framework:

             base           diff           difference (95% CI)
  sys_time   1.227 ± 0.021  1.234 ± 0.031  [  -0.3% ..   +1.5%]
  user_time  3.665 ± 0.036  3.674 ± 0.035  [  -0.2% ..   +0.7%]
  wall_time  4.596 ± 0.055  4.609 ± 0.064  [  -0.3% ..   +0.9%]
  samples    34             47

Max RSS regression is barely stat sig:

           base                           diff                           difference (95% CI)
  time     1003664356.324 ± 15404053.912  1010380403.613 ± 10578309.455  [  +0.0% ..   +1.3%]
  samples  37                             31


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D121351

Files:
  lld/MachO/Arch/ARM.cpp
  lld/MachO/Arch/ARM64.cpp
  lld/MachO/Arch/ARM64Common.h
  lld/MachO/Arch/ARM64_32.cpp
  lld/MachO/Arch/X86_64.cpp
  lld/MachO/Symbols.cpp
  lld/MachO/Symbols.h
  lld/MachO/SyntheticSections.cpp
  lld/MachO/SyntheticSections.h
  lld/MachO/Target.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D121351.414271.patch
Type: text/x-patch
Size: 11749 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220310/89d38382/attachment-0001.bin>


More information about the llvm-commits mailing list