llvm/lld/MachO/Arch
Jez Ng 7f3ddf8443 [lld-macho][nfc] Allow Defined symbols to be placed in binding sections
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}; 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

Reviewed By: modimo

Differential Revision: https://reviews.llvm.org/D121351
2022-03-14 22:18:32 -04:00
..
ARM.cpp [lld-macho][nfc] Allow Defined symbols to be placed in binding sections 2022-03-14 22:18:32 -04:00
ARM64.cpp [lld-macho][nfc] Allow Defined symbols to be placed in binding sections 2022-03-14 22:18:32 -04:00
ARM64_32.cpp [lld-macho][nfc] Allow Defined symbols to be placed in binding sections 2022-03-14 22:18:32 -04:00
ARM64Common.cpp [lld-macho] Have relocation address included in range-check error message 2022-02-28 21:56:38 -05:00
ARM64Common.h [lld-macho][nfc] Allow Defined symbols to be placed in binding sections 2022-03-14 22:18:32 -04:00
X86_64.cpp [lld-macho][nfc] Allow Defined symbols to be placed in binding sections 2022-03-14 22:18:32 -04:00