diff options
author | Fangrui Song <i@maskray.me> | 2022-08-04 11:47:52 -0700 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2022-08-04 11:47:52 -0700 |
commit | 2515cb80cd3ba3bcead6ec2f1f30437cc2d325d5 (patch) | |
tree | 041c6f89729e2db9f2342562d2d86e33e2652907 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | db5a2afa62428a461f17de30fc410c20d12fe201 (diff) | |
download | llvm-2515cb80cd3ba3bcead6ec2f1f30437cc2d325d5.zip llvm-2515cb80cd3ba3bcead6ec2f1f30437cc2d325d5.tar.gz llvm-2515cb80cd3ba3bcead6ec2f1f30437cc2d325d5.tar.bz2 |
[ELF] Parallelize input section initialization
This implements the last step of
https://discourse.llvm.org/t/parallel-input-file-parsing/60164 for the ELF port.
For an ELF object file, we previously did: parse, (parallel) initializeLocalSymbols, (parallel) postParseObjectFile.
Now we do: parse, (parallel) initSectionsAndLocalSyms, (parallel) postParseObjectFile.
initSectionsAndLocalSyms does most of input section initialization.
The sequential `parse` does SHT_ARM_ATTRIBUTES/SHT_RISCV_ATTRIBUTES/SHT_GROUP initialization for now.
Performance linking some programs with --threads=8 (glibc 2.33 malloc and mimalloc):
* clang: 1.05x as fast with glibc malloc, 1.03x as fast with mimalloc
* chrome: 1.04x as fast with glibc malloc, 1.03x as fast with mimalloc
* internal search program: 1.08x as fast with glibc malloc, 1.05x as fast with mimalloc
Reviewed By: peter.smith
Differential Revision: https://reviews.llvm.org/D130810
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions