diff --git a/buildbot/osuosl/master/config/builders.py b/buildbot/osuosl/master/config/builders.py --- a/buildbot/osuosl/master/config/builders.py +++ b/buildbot/osuosl/master/config/builders.py @@ -1577,7 +1577,7 @@ ])}, # Sanitizer builders. -# +# # bootstrap-asan, bootstrap-msan, and sanitizer-x86_64-linux-fast have steps # with large memory usage, so assign them to different workers. @@ -2468,6 +2468,41 @@ depends_on_projects=['llvm', 'bolt'], )}, + {'name': "bolt-x86_64-ubuntu-clang-bolt-gcc", + 'tags': ["bolt"], + 'collapseRequests': False, + 'workernames':["bolt-worker"], + 'builddir': "bolt-x86_64-ubuntu-clang-bolt-gcc", + 'factory' : BOLTBuilder.getBOLTCmakeBuildFactory( + bolttests=False, + cache='clang/cmake/caches/BOLT.cmake', + targets='clang++-bolt', + extra_configure_args=[ + "-DLLVM_APPEND_VC_REV=OFF", + "-DLLVM_CCACHE_BUILD=ON", + ], + )}, + + {'name': "bolt-x86_64-ubuntu-clang-bolt-lto-pgo", + 'tags': ["bolt"], + 'collapseRequests': False, + 'workernames':["bolt-worker"], + 'builddir': "bolt-x86_64-ubuntu-clang-bolt-lto-pgo", + 'factory' : BOLTBuilder.getBOLTCmakeBuildFactory( + bolttests=False, + cache='clang/cmake/caches/BOLT-PGO.cmake', + targets='stage2-clang++-bolt', + extra_configure_args=[ + "-DLLVM_APPEND_VC_REV=OFF", + "-DLLVM_ENABLE_LLD=ON", + "-DBOOTSTRAP_LLVM_ENABLE_LLD=ON", + "-DBOOTSTRAP_BOOTSTRAP_LLVM_ENABLE_LLD=ON", + "-DLLVM_CCACHE_BUILD=ON", + "-DBOOTSTRAP_LLVM_CCACHE_BUILD=ON", + "-DPGO_INSTRUMENT_LTO=Thin", + ], + )}, + {'name': "bolt-x86_64-ubuntu-dylib", 'tags': ["bolt"], 'collapseRequests': False, diff --git a/zorg/buildbot/builders/BOLTBuilder.py b/zorg/buildbot/builders/BOLTBuilder.py --- a/zorg/buildbot/builders/BOLTBuilder.py +++ b/zorg/buildbot/builders/BOLTBuilder.py @@ -6,6 +6,9 @@ def getBOLTCmakeBuildFactory( clean = False, bolttests = False, + targets = None, + checks = None, + cache = None, extra_configure_args = None, env = None, **kwargs): @@ -18,8 +21,10 @@ cleanBuildRequested = lambda step: clean or step.build.getProperty("clean", default=step.build.getProperty("clean_obj")) cleanBuildRequestedByProperty = lambda step: step.build.getProperty("clean") - checks = ['check-bolt'] - extra_steps = [] + if not targets: + targets = ['bolt'] + if not checks: + checks = ['check-bolt'] f = getLLVMBuildFactoryAndSourcecodeSteps( depends_on_projects=['bolt', 'llvm'], @@ -53,6 +58,11 @@ ('-G', 'Ninja'), ]) + if cache: + CmakeCommand.applyRequiredOptions(extra_configure_args, [ + ("-C", f"../{src_dir}/{cache}"), + ]) + addCmakeSteps( f, cleanBuildRequested=cleanBuildRequested, @@ -63,7 +73,7 @@ addNinjaSteps( f, - targets = ['bolt'], + targets=targets, checks=checks, env=env, **kwargs)