[PATCH] D147812: [InstrProf] Use BalancedPartitioning to order temporal profiling trace data

Ellis Hoag via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 11 09:17:20 PDT 2023


ellis created this revision.
Herald added subscribers: wlei, wenlei, mgrang, hiraditya.
Herald added a project: All.
ellis updated this revision to Diff 511837.
ellis added a comment.
ellis retitled this revision from "[InstrProf] Use BalancedPartitioning to order trace data" to "[InstrProf] Use BalancedPartitioning to order temporal profiling trace data".
ellis added reviewers: snehasish, davidxl, spupyrev, wenlei, MaskRay.
ellis published this revision for review.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Update


In [0] we described an algorithm called //BalancedPartitioning// (bp) to consume function traces [1] and compute a function order that reduces the number of page faults during startup.

This patch adds the `order` command to the `llvm-profdata` tool which uses bp to output a function order that can be passed to the linker via `--symbol-ordering-file=`.

Special thanks to Sergey Pupyrev and Julian Mestre for designing this balanced partitioning algorithm.

[0] https://discourse.llvm.org/t/rfc-temporal-profiling-extension-for-irpgo/68068
[1] https://reviews.llvm.org/D147287


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D147812

Files:
  llvm/include/llvm/Support/BalancedPartitioning.h
  llvm/lib/Support/BalancedPartitioning.cpp
  llvm/lib/Support/CMakeLists.txt
  llvm/test/tools/llvm-profdata/show-order.proftext
  llvm/tools/llvm-profdata/llvm-profdata.cpp
  llvm/unittests/Support/BalancedPartitioningTest.cpp
  llvm/unittests/Support/CMakeLists.txt

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D147812.511837.patch
Type: text/x-patch
Size: 29591 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230411/4221cf11/attachment-0001.bin>


More information about the llvm-commits mailing list