Page MenuHomeSerpent OS

Make clang great again
Open, HighPublic

Description

Prioritize reducing the time to build packages, with only modest increases in the LLVM/clang build time (at least initially).

  • Compile a performance team
    • Use LLVM as a backend for building team members
  • Update to clang 11 once it's released, supposed to be faster
  • Performance tweaks to clang/llvm
    • Reduce the number linked libs - static libc++/libc++abi/libunwind into libLLVM
      • -Wl,--as-needed to remove from clang binary
    • -mllvm -polly options for performance
    • -DENABLE_EXPERIMENTAL_NEW_PASS_MANAGER as used by most projects extending clang (testsuite is the upstream blocker)
    • Ensure -fno-semantic-interposition (this may break libc++ with clang build) and -Bsymbolic-functions in build
    • LTO (once compiler is faster) and PGO (not initially due to build time)
    • Check that tools are generating DWARFv5 by default
    • Utilise PCH where possible
      • Scan source for potential PCH capability
      • Enable in builds, Qt, LO as perfect test cases
      • Ensure -fpch-instantiate-templates is passed to the builds
  • Give build tools a once over to minimize build times
    • autotools - optimize dash/bash
    • cmake
    • make
    • meson - optimize python
    • ninja
    • PCH/unity builds integrating into cmake/meson
  • Integrate benchmarking-tools into boulder to make benchmarking easier (and accessible to more users)
    • General testing for impacts of core flag changes to enable by default

Event Timeline

sunnyflunk created this task.

For reference, currently seeing my optimized clang on a i5-8259U (probably with turbo disabled even) smoking a 3700X by 20% (per thread as was -j4) via a quick benchmark.