aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineOperand.cpp
diff options
context:
space:
mode:
authorJez Ng <jezng@fb.com>2021-07-01 20:33:55 -0400
committerJez Ng <jezng@fb.com>2021-07-01 21:22:39 -0400
commitf6b6e7214366fc12469aba2fe16495e5f7a375a6 (patch)
tree373e7ed3055de4e46330d605e8945c222e74289c /llvm/lib/CodeGen/MachineOperand.cpp
parent08715e6c47f68b7ea985fbd76d4945dfdff0a9aa (diff)
downloadllvm-f6b6e7214366fc12469aba2fe16495e5f7a375a6.zip
llvm-f6b6e7214366fc12469aba2fe16495e5f7a375a6.tar.gz
llvm-f6b6e7214366fc12469aba2fe16495e5f7a375a6.tar.bz2
[lld-macho] Factor out common InputSection members
We have been creating many ConcatInputSections with identical values due to .subsections_via_symbols. This diff factors out the identical values into a Shared struct, to reduce memory consumption and make copying cheaper. I also changed `callSiteCount` from a uint32_t to a 31-bit field to save an extra word. All in all, this takes InputSection from 120 to 72 bytes (and ConcatInputSection from 160 to 112 bytes), i.e. 30% size reduction in ConcatInputSection. Numbers for linking chromium_framework on my 3.2 GHz 16-Core Intel Xeon W: N Min Max Median Avg Stddev x 20 4.14 4.24 4.18 4.183 0.027548999 + 20 4.04 4.11 4.075 4.0775 0.018027756 Difference at 95.0% confidence -0.1055 +/- 0.0149005 -2.52211% +/- 0.356215% (Student's t, pooled s = 0.0232803) Reviewed By: #lld-macho, thakis Differential Revision: https://reviews.llvm.org/D105305
Diffstat (limited to 'llvm/lib/CodeGen/MachineOperand.cpp')
0 files changed, 0 insertions, 0 deletions