aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
diff options
context:
space:
mode:
authorGreg McGary <gkm@fb.com>2021-05-19 09:58:17 -0700
committerGreg McGary <gkm@fb.com>2021-06-17 10:07:44 -0700
commitf27e4548fc42876f66dac260ca3b6df0d5fd5fd6 (patch)
tree63c653e399fe01a267b278c27b2edae121f446eb /llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
parent734d688fbce8a453aa61764b9b5a43b26455dc0d (diff)
downloadllvm-f27e4548fc42876f66dac260ca3b6df0d5fd5fd6.zip
llvm-f27e4548fc42876f66dac260ca3b6df0d5fd5fd6.tar.gz
llvm-f27e4548fc42876f66dac260ca3b6df0d5fd5fd6.tar.bz2
[lld-macho] Implement ICF
ICF = Identical C(ode|OMDAT) Folding This is the LLD ELF/COFF algorithm, adapted for MachO. So far, only `-icf all` is supported. In order to support `-icf safe`, we will need to port address-significance tables (`.addrsig` directives) to MachO, which will come in later diffs. `check-{llvm,clang,lld}` have 0 regressions for `lld -icf all` vs. baseline ld64. We only run ICF on `__TEXT,__text` for reasons explained in the block comment in `ConcatOutputSection.cpp`. Here is the perf impact for linking `chromium_framekwork` on a Mac Pro (16-core Xeon W) for the non-ICF case vs. pre-ICF: ``` N Min Max Median Avg Stddev x 20 4.27 4.44 4.34 4.349 0.043029977 + 20 4.37 4.46 4.405 4.4115 0.025188761 Difference at 95.0% confidence 0.0625 +/- 0.0225658 1.43711% +/- 0.518873% (Student's t, pooled s = 0.0352566) ``` Reviewed By: #lld-macho, int3 Differential Revision: https://reviews.llvm.org/D103292
Diffstat (limited to 'llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp')
0 files changed, 0 insertions, 0 deletions