Export of internal Abseil changes.

--
6258612abc571fa7f51f34046b410c73486505fe by Derek Mauro <dmauro@google.com>:

Rollback checking the return value of pthread functions in thread_identity.cc.

PiperOrigin-RevId: 248381230

--
fda6acddab04fc53eeb84ec253de4a9655bf9a36 by CJ Johnson <johnsoncj@google.com>:

Removes too-restrictive benchmark abstraction in inlined_vector_benchmark

PiperOrigin-RevId: 248366325

--
68674991e63c919de8a3eebced5adec6466ec8fe by Abseil Team <absl-team@google.com>:

Check for pthread_setmask() failure.

Log a fatal error message if pthread_setmask() fails.

PiperOrigin-RevId: 248347115

--
45389e44c0d1badafb6b560cae3df99fc8bd16ac by Derek Mauro <dmauro@google.com>:

Fix a -Wredundant-move warning in GCC 9.

PiperOrigin-RevId: 248338682

--
12cfbacf599084a8ac6bf4395026cbf193c85a26 by Derek Mauro <dmauro@google.com>:

Check the return value of pthread functions in thread_identity.cc.

PiperOrigin-RevId: 248327118

--
2bc69998e68cfee96e812ce800e83cce7a715091 by Benjamin Barenblat <bbaren@google.com>:

Encourage judicious use of ABSL_PREDICT_{TRUE,FALSE}

Recommend that users use branch prediction annotations only on hot,
consistently mispredicted branches.

PiperOrigin-RevId: 248222450
GitOrigin-RevId: 6258612abc571fa7f51f34046b410c73486505fe
Change-Id: I09d409f9a3941ee926b8476b5473f9c4899cc3ff
This commit is contained in:
Abseil Team 2019-05-15 12:21:46 -07:00 committed by Andy Soffer
parent 436ba6c4a0
commit fa00c32107
4 changed files with 19 additions and 11 deletions

View file

@ -405,12 +405,6 @@ class NontrivialType {
using NontrivialVec = absl::InlinedVector<NontrivialType, kInlineElements>;
#define BENCHMARK_OPERATION(BM_Function) \
BENCHMARK_TEMPLATE(BM_Function, TrivialVec, kSmallSize); \
BENCHMARK_TEMPLATE(BM_Function, TrivialVec, kLargeSize); \
BENCHMARK_TEMPLATE(BM_Function, NontrivialVec, kSmallSize); \
BENCHMARK_TEMPLATE(BM_Function, NontrivialVec, kLargeSize)
template <typename VecT, typename PrepareVec, typename TestVec>
void BatchedBenchmark(benchmark::State& state, PrepareVec prepare_vec,
TestVec test_vec) {
@ -432,13 +426,18 @@ void BatchedBenchmark(benchmark::State& state, PrepareVec prepare_vec,
}
}
template <typename VecT, size_t Size>
template <typename VecT, size_t FromSize>
void BM_Clear(benchmark::State& state) {
BatchedBenchmark<VecT>(
state,
/* prepare_vec = */ [](VecT* vec) { vec->resize(Size); },
/* prepare_vec = */ [](VecT* vec) { vec->resize(FromSize); },
/* test_vec = */ [](VecT* vec) { vec->clear(); });
}
BENCHMARK_OPERATION(BM_Clear);
BENCHMARK_TEMPLATE(BM_Clear, TrivialVec, kSmallSize);
BENCHMARK_TEMPLATE(BM_Clear, TrivialVec, kLargeSize);
BENCHMARK_TEMPLATE(BM_Clear, NontrivialVec, kSmallSize);
BENCHMARK_TEMPLATE(BM_Clear, NontrivialVec, kLargeSize);
} // namespace