[PATCH] D69732: [WIP][LTO] Apply SamplePGO pipeline tunes for ThinLTO pre-link to full LTO

Matthew Voss via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 5 16:42:28 PST 2019


ormris added a comment.

I've done testing with the following global parameters.

- The base for the branch is llvmorg-10-init-8655-g94a4a2c97f8
- Used llvm, clang, lld, and llvm-ar from this branch.
- The sqlite kvtest program was the test payload.

This test compared an unmodified compiler from the base of the branch with a modified compiler with this patch applied and the loop optimisation passes mentioned above moved to the backend. The results were as follows. All numbers in seconds.

| Run  | Modified LTO | Modified SPGO+LTO | Unmodified SPGO+LTO |
| ---- | ------------ | ----------------- | ------------------- |
| 1    | 42.00        | 41.73             | 42.08               |
| 2    | 42.30        | 39.49             | 42.45               |
| 3    | 41.21        | 42.46             | 42.49               |
| AVG: | 41.84        | 41.23             | 42.34               |
|

TL;DR the average run using a compiler built with the modified SPGO pipeline is about a second faster. Definitely a positive initial result.

In D69732#1730732 <https://reviews.llvm.org/D69732#1730732>, @tejohnson wrote:

> This probably needs to be taken over by someone who cares about full LTO performance (@wristow or @ormris ?). This patch was some cleanup of the full LTO sample PGO pipeline, but has a number of issues I enumerate in the summary.


Given the performance improvements here, I'd like to develop this patch further.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69732/new/

https://reviews.llvm.org/D69732





More information about the llvm-commits mailing list