This is an archive of the discontinued LLVM Phabricator instance.

[BOLT] Combine two clang-bolt builders into one
ClosedPublic

Authored by Amir on Jan 29 2023, 3:56 PM.

Details

Reviewers
gkistanova
Group Reviewers
Restricted Project
Commits
rZORG5480e55cc545: [BOLT] Combine two clang-bolt builders into one
Summary

Use BOLT.cmake and BOLT-PGO.cmake to run comprehensive
BOLT testing with Clang:

  • clang-bolt instruments and optimizes 1st stage Clang built

with host GCC.

  • stage2-clang-bolt uses optimized Clang to build 2nd stage

Clang (with PGO+LTO), then instruments/optimizes that binary.

This flow provides testing coverage of both clang-bolt-gcc
and clang-bolt-lto-pgo. BOLT is applied to GCC- and Clang-built
clang binary. Additionally, this extends BOLT testing by running
BOLT-optimized Clang to build 2nd stage Clang.

Diff Detail

Event Timeline

Amir created this revision.Jan 29 2023, 3:56 PM
Herald added a project: Restricted Project. · View Herald Transcript
Amir requested review of this revision.Jan 29 2023, 3:56 PM
Amir edited the summary of this revision. (Show Details)Jan 29 2023, 4:02 PM
Amir updated this revision to Diff 493193.Jan 29 2023, 8:46 PM

Remove extra diff context

gkistanova accepted this revision.Feb 1 2023, 11:30 PM

LGTM with a nit pick.

buildbot/osuosl/master/config/builders.py
2513

Do you need bolt twice in the name, at the beginning and at the end?

This revision is now accepted and ready to land.Feb 1 2023, 11:30 PM
Amir added inline comments.Feb 2 2023, 11:57 AM
buildbot/osuosl/master/config/builders.py
2513

Yeah, maybe not. I used clang-bolt as a name for this usecase (Clang optimized by BOLT using CMake). Leaving it as -clang might make an impression it's just BOLT built with Clang. But since I'm the only one who looks at it, I'll drop -bolt at the end to remove the apparent redundancy.

This revision was automatically updated to reflect the committed changes.