[all-commits] [llvm/llvm-project] dca730: [clang][perf-training] Support excluding LLVM buil...

Petr Hosek via All-commits all-commits at lists.llvm.org
Wed Feb 19 11:36:32 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: dca73063653ca7d35afb3226ae66623495086204
      https://github.com/llvm/llvm-project/commit/dca73063653ca7d35afb3226ae66623495086204
  Author: Petr Hosek <phosek at google.com>
  Date:   2025-02-19 (Wed, 19 Feb 2025)

  Changed paths:
    M clang/utils/perf-training/CMakeLists.txt
    M clang/utils/perf-training/lit.cfg
    M clang/utils/perf-training/lit.site.cfg.in

  Log Message:
  -----------
  [clang][perf-training] Support excluding LLVM build from PGO training (#126876)

Using LLVM build itself for PGO training is convenient and a great
starting point but it also has several issues:

* LLVM build implicitly depends on tools other than CMake and C/C++
compiler and if those tools aren't available in PATH, the build will
fail.
* LLVM build also requires standard headers and libraries which may not
always be available in the default location requiring an explicit
sysroot.
* Building a single configuration (-DCMAKE_BUILD_TYPE=Release) only
exercises the -O3 pipeline and can pesimize other configurations.
* Building for the host target doesn't exercise all other targets.
* Since LLVMSupport is a static library, this doesn't exercise the
linker (beyond what the CMake itself does).

Rather than using LLVM build, ideally we would provide a more minimal,
purpose built corpus. While we're working on building such a corpus,
provide a CMake option that lets vendors disable the use LLVM build for
PGO training.



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