[zorg] r346890 - Attempt to add check-cxx-benchmarks rule for libc++
Eric Fiselier via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 14 12:46:51 PST 2018
Author: ericwf
Date: Wed Nov 14 12:46:51 2018
New Revision: 346890
URL: http://llvm.org/viewvc/llvm-project?rev=346890&view=rev
Log:
Attempt to add check-cxx-benchmarks rule for libc++
This patch attempts to make certain libc++ builders run the benchmarks
using the newly added libc++ LIT based benchmark targets.
Modified:
zorg/trunk/buildbot/osuosl/master/config/builders.py
zorg/trunk/zorg/buildbot/builders/LibcxxAndAbiBuilder.py
Modified: zorg/trunk/buildbot/osuosl/master/config/builders.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/buildbot/osuosl/master/config/builders.py?rev=346890&r1=346889&r2=346890&view=diff
==============================================================================
--- zorg/trunk/buildbot/osuosl/master/config/builders.py (original)
+++ zorg/trunk/buildbot/osuosl/master/config/builders.py Wed Nov 14 12:46:51 2018
@@ -1306,6 +1306,8 @@ def _get_libcxx_builders():
'libcxx-cloud1', 'libcxx-cloud2', 'libcxx-cloud3', 'libcxx-cloud4',
'libcxx-cloud5'
]
+ benchmark_opts = ';'.join(
+ ['--benchmark_min_time=0.01', '--benchmark_color=false'])
return [
# gribozavr's builders on gribozavr4
{'name': 'libcxx-libcxxabi-x86_64-linux-debian',
@@ -1383,8 +1385,10 @@ def _get_libcxx_builders():
'factory': LibcxxAndAbiBuilder.getLibcxxAndAbiBuilder(
env={'PATH': '/usr/local/bin:/usr/bin:/bin',
'CC': 'clang', 'CXX': 'clang++'},
+ cmake_extra_opts={'LIBCXX_BENCHMARK_TEST_ARGS': benchmark_opts},
lit_extra_opts={'std': 'c++17', 'enable_warnings': 'true'},
- check_libcxx_abilist=True),
+ check_libcxx_abilist=True,
+ check_libcxx_benchmarks=True),
'category': 'libcxx'},
{'name': 'libcxx-libcxxabi-x86_64-linux-ubuntu-cxx2a',
@@ -1393,8 +1397,10 @@ def _get_libcxx_builders():
'factory': LibcxxAndAbiBuilder.getLibcxxAndAbiBuilder(
env={'PATH': '/usr/local/bin:/usr/bin:/bin',
'CC': 'clang', 'CXX': 'clang++'},
+ cmake_extra_opts={'LIBCXX_BENCHMARK_TEST_ARGS': benchmark_opts},
lit_extra_opts={'std': 'c++2a', 'enable_warnings': 'true'},
- check_libcxx_abilist=True),
+ check_libcxx_abilist=True,
+ check_libcxx_benchmarks=True),
'category': 'libcxx'},
{'name': 'libcxx-libcxxabi-x86_64-linux-ubuntu-32bit',
@@ -1414,7 +1420,9 @@ def _get_libcxx_builders():
'factory': LibcxxAndAbiBuilder.getLibcxxAndAbiBuilder(
env={'PATH': '/usr/local/bin:/usr/bin:/bin',
'CC': 'clang', 'CXX': 'clang++'},
- cmake_extra_opts={'LLVM_USE_SANITIZER': 'Address'}),
+ cmake_extra_opts={'LLVM_USE_SANITIZER': 'Address',
+ 'LIBCXX_BENCHMARK_TEST_ARGS': benchmark_opts},
+ check_libcxx_benchmarks=True),
'category': 'libcxx'},
{'name': 'libcxx-libcxxabi-x86_64-linux-ubuntu-ubsan',
@@ -1424,17 +1432,20 @@ def _get_libcxx_builders():
env={'PATH': '/usr/local/bin:/usr/bin:/bin',
'CC': 'clang', 'CXX': 'clang++'},
cmake_extra_opts={'LLVM_USE_SANITIZER': 'Undefined',
- 'LIBCXX_ABI_UNSTABLE': 'ON'}),
+ 'LIBCXX_ABI_UNSTABLE': 'ON',
+ 'LIBCXX_BENCHMARK_TEST_ARGS': benchmark_opts},
+ check_libcxx_benchmarks=True),
'category': 'libcxx'},
- # EricWF's builders on ericwf-buildslave2
{'name': 'libcxx-libcxxabi-x86_64-linux-ubuntu-msan',
'slavenames': ericwf_slaves + docker_slaves,
'builddir' : 'libcxx-libcxxabi-x86_64-linux-ubuntu-msan',
'factory': LibcxxAndAbiBuilder.getLibcxxAndAbiBuilder(
env={'PATH': '/usr/local/bin:/usr/bin:/bin',
'CC': 'clang', 'CXX': 'clang++'},
- cmake_extra_opts={'LLVM_USE_SANITIZER': 'MemoryWithOrigins'}),
+ cmake_extra_opts={'LLVM_USE_SANITIZER': 'MemoryWithOrigins',
+ 'LIBCXX_BENCHMARK_TEST_ARGS': benchmark_opts},
+ check_libcxx_benchmarks=True),
'category': 'libcxx'},
{'name': 'libcxx-libcxxabi-libunwind-x86_64-linux-ubuntu',
Modified: zorg/trunk/zorg/buildbot/builders/LibcxxAndAbiBuilder.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/builders/LibcxxAndAbiBuilder.py?rev=346890&r1=346889&r2=346890&view=diff
==============================================================================
--- zorg/trunk/zorg/buildbot/builders/LibcxxAndAbiBuilder.py (original)
+++ zorg/trunk/zorg/buildbot/builders/LibcxxAndAbiBuilder.py Wed Nov 14 12:46:51 2018
@@ -54,7 +54,8 @@ def getLibcxxWholeTree(f, src_root):
def getLibcxxAndAbiBuilder(f=None, env={}, additional_features=set(),
cmake_extra_opts={}, lit_extra_opts={},
- lit_extra_args=[], check_libcxx_abilist=False):
+ lit_extra_args=[], check_libcxx_abilist=False,
+ check_libcxx_benchmarks=False):
if f is None:
f = buildbot.process.factory.BuildFactory()
@@ -140,4 +141,19 @@ def getLibcxxAndAbiBuilder(f=None, env={
descriptionDone = ['test', 'libcxx', 'abi'],
workdir = build_path))
+ if check_libcxx_benchmarks:
+ # Build the libc++ benchmarks
+ f.addStep(buildbot.steps.shell.ShellCommand(
+ name='build.libcxx.benchmarks',
+ command=['make', jobs_flag, 'cxx-benchmarks'],
+ haltOnFailure=True, workdir=build_path))
+
+ # Run the benchmarks
+ f.addStep(LitTestCommand(
+ name = 'test.libcxx.benchmarks',
+ command = ['make', jobs_flag, 'check-cxx-benchmarks'],
+ description = ['testing', 'libcxx', 'benchmarks'],
+ descriptionDone = ['test', 'libcxx', 'benchmarks'],
+ workdir = build_path))
+
return f
More information about the llvm-commits
mailing list