Update in-tree Google Benchmark to current ToT.
authorEric Fiselier <eric@efcs.ca>
Tue, 9 Aug 2016 18:56:48 +0000 (18:56 +0000)
committerEric Fiselier <eric@efcs.ca>
Tue, 9 Aug 2016 18:56:48 +0000 (18:56 +0000)
commitf6e09e537bab92bac0c0f9cfaa4f79761356bf7e
tree5121bd831aec661aec64f853d924c125e4e9bcfb
parent982ab5dbd815431f9f21b1b56bf7f0f1c2567842
Update in-tree Google Benchmark to current ToT.

I've put some work into the Google Benchmark library in order to make it easier
to benchmark libc++. These changes have already been upstreamed into
Google Benchmark and this patch applies the changes to the in-tree version.

The main improvement in the addition of a 'compare_bench.py' script which
makes it very easy to compare benchmarks. For example to compare the native
STL to libc++ you would run:

`$ compare_bench.py ./util_smartptr.native.out ./util_smartptr.libcxx.out`

And the output would look like:

RUNNING: ./util_smartptr.native.out
Benchmark                          Time           CPU Iterations
----------------------------------------------------------------
BM_SharedPtrCreateDestroy         62 ns         62 ns   10937500
BM_SharedPtrIncDecRef             31 ns         31 ns   23972603
BM_WeakPtrIncDecRef               28 ns         28 ns   23648649
RUNNING: ./util_smartptr.libcxx.out
Benchmark                          Time           CPU Iterations
----------------------------------------------------------------
BM_SharedPtrCreateDestroy         46 ns         46 ns   14957265
BM_SharedPtrIncDecRef             31 ns         31 ns   22435897
BM_WeakPtrIncDecRef               34 ns         34 ns   21084337
Comparing ./util_smartptr.native.out to ./util_smartptr.libcxx.out
Benchmark                          Time           CPU
-----------------------------------------------------
BM_SharedPtrCreateDestroy         -0.26         -0.26
BM_SharedPtrIncDecRef             +0.00         +0.00
BM_WeakPtrIncDecRef               +0.21         +0.21

llvm-svn: 278147
33 files changed:
libcxx/benchmarks/CMakeLists.txt
libcxx/benchmarks/ContainerBenchmarks.hpp
libcxx/benchmarks/algorithms.bench.cpp
libcxx/benchmarks/unordered_set_operations.bench.cpp
libcxx/utils/google-benchmark/AUTHORS
libcxx/utils/google-benchmark/README.md
libcxx/utils/google-benchmark/include/benchmark/benchmark_api.h
libcxx/utils/google-benchmark/include/benchmark/macros.h
libcxx/utils/google-benchmark/include/benchmark/reporter.h
libcxx/utils/google-benchmark/src/benchmark.cc
libcxx/utils/google-benchmark/src/colorprint.cc
libcxx/utils/google-benchmark/src/colorprint.h
libcxx/utils/google-benchmark/src/complexity.cc
libcxx/utils/google-benchmark/src/console_reporter.cc
libcxx/utils/google-benchmark/src/cycleclock.h
libcxx/utils/google-benchmark/src/sysinfo.cc
libcxx/utils/google-benchmark/test/CMakeLists.txt
libcxx/utils/google-benchmark/test/basic_test.cc
libcxx/utils/google-benchmark/test/benchmark_test.cc
libcxx/utils/google-benchmark/test/complexity_test.cc
libcxx/utils/google-benchmark/test/fixture_test.cc
libcxx/utils/google-benchmark/test/map_test.cc
libcxx/utils/google-benchmark/test/multiple_ranges_test.cc [new file with mode: 0644]
libcxx/utils/google-benchmark/test/options_test.cc
libcxx/utils/google-benchmark/test/register_benchmark_test.cc [new file with mode: 0644]
libcxx/utils/google-benchmark/test/reporter_output_test.cc
libcxx/utils/google-benchmark/test/skip_with_error_test.cc
libcxx/utils/google-benchmark/tools/compare_bench.py [new file with mode: 0644]
libcxx/utils/google-benchmark/tools/gbench/Inputs/test1_run1.json [new file with mode: 0644]
libcxx/utils/google-benchmark/tools/gbench/Inputs/test1_run2.json [new file with mode: 0644]
libcxx/utils/google-benchmark/tools/gbench/__init__.py [new file with mode: 0644]
libcxx/utils/google-benchmark/tools/gbench/report.py [new file with mode: 0644]
libcxx/utils/google-benchmark/tools/gbench/util.py [new file with mode: 0644]