[all-commits] [llvm/llvm-project] 3b1663: [MachineOutliner] Sort by Benefit to Cost Ratio (#...

Xuan Zhang via All-commits all-commits at lists.llvm.org
Fri Jun 7 06:50:35 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3b16630c26505060a876f578e4b2ba701c780e9a
      https://github.com/llvm/llvm-project/commit/3b16630c26505060a876f578e4b2ba701c780e9a
  Author: Xuan Zhang <144393379+xuanzh-meta at users.noreply.github.com>
  Date:   2024-06-07 (Fri, 07 Jun 2024)

  Changed paths:
    M llvm/lib/CodeGen/MachineOutliner.cpp
    A llvm/test/CodeGen/AArch64/machine-outliner-sort-per-priority.ll
    A llvm/test/CodeGen/AArch64/machine-outliner-sort-per-priority.mir
    M llvm/test/CodeGen/ARM/machine-outliner-calls.mir
    M llvm/test/CodeGen/ARM/machine-outliner-default.mir
    M llvm/test/CodeGen/ARM/machine-outliner-stack-fixup-arm.mir
    M llvm/test/CodeGen/ARM/machine-outliner-stack-fixup-thumb.mir

  Log Message:
  -----------
  [MachineOutliner] Sort by Benefit to Cost Ratio (#90264)

This PR depends on https://github.com/llvm/llvm-project/pull/90260

We changed the order in which functions are outlined in Machine
Outliner.

The formula for priority is found via a black-box Bayesian optimization
toolbox. Using this formula for sorting consistently reduces the
uncompressed size of large real-world mobile apps. We also ran a few
benchmarks using LLVM test suites, and showed that sorting by priority
consistently reduces the text segment size.

|run (CTMark/)   |baseline (1)|priority (2)|diff (1 -> 2)|
|----------------|------------|------------|-------------|
|lencod          |349624      |349264      |-0.1030%     |
|SPASS           |219672      |219480      |-0.0874%     |
|kc              |271956      |251200      |-7.6321%     |
|sqlite3         |223920      |223708      |-0.0947%     |
|7zip-benchmark  |405364      |402624      |-0.6759%     |
|bullet          |139820      |139500      |-0.2289%     |
|consumer-typeset|295684      |290196      |-1.8560%     |
|pairlocalalign  |72236       |72092       |-0.1993%     |
|tramp3d-v4      |189572      |189292      |-0.1477%     |

This is part of an enhanced version of machine outliner -- see
[RFC](https://discourse.llvm.org/t/rfc-enhanced-machine-outliner-part-1-fulllto-part-2-thinlto-nolto-to-come/78732).



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list