aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
diff options
context:
space:
mode:
authorEllis Hoag <ellis.sparky.hoag@gmail.com>2024-07-23 08:34:40 -0700
committerGitHub <noreply@github.com>2024-07-23 08:34:40 -0700
commite3b30bc553775f29661eebc8e022efa4cad91610 (patch)
tree88983c8f3b519635c1476eb68f4f4c0e2707d50a /clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
parentb42fe6740ec696dca0e3dc914d2638088caa3f53 (diff)
downloadllvm-e3b30bc553775f29661eebc8e022efa4cad91610.zip
llvm-e3b30bc553775f29661eebc8e022efa4cad91610.tar.gz
llvm-e3b30bc553775f29661eebc8e022efa4cad91610.tar.bz2
[lld][InstrProf] Profile guided function order (#96268)
Add the lld flags `--irpgo-profile-sort=<profile>` and `--compression-sort={function,data,both}` to order functions to improve startup time, and functions or data to improve compressed size, respectively. We use Balanced Partitioning to determine the best section order using traces from IRPGO profiles (see https://discourse.llvm.org/t/rfc-temporal-profiling-extension-for-irpgo/68068 for details) to improve startup time and using hashes of section contents to improve compressed size. In our recent LLVM talk (https://www.youtube.com/watch?v=yd4pbSTjwuA), we showed that this can reduce page faults during startup by 40% on a large iOS app and we can reduce compressed size by 0.8-3%. More details can be found in https://dl.acm.org/doi/10.1145/3660635 --------- Co-authored-by: Vincent Lee <thevinster@users.noreply.github.com>
Diffstat (limited to 'clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp')
0 files changed, 0 insertions, 0 deletions