Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/compiler-rt/lib/tsan/benchmarks/func_entry_exit.cpp
35266 views
1
// Synthetic benchmark for __tsan_func_entry/exit (spends ~75% there).
2
3
void foo(bool x);
4
5
int main() {
6
volatile int kRepeat1 = 1 << 30;
7
const int kRepeat = kRepeat1;
8
for (int i = 0; i < kRepeat; i++)
9
foo(false);
10
}
11
12
__attribute__((noinline)) void bar(volatile bool x) {
13
if (x)
14
foo(x);
15
}
16
17
__attribute__((noinline)) void foo(bool x) {
18
if (__builtin_expect(x, false))
19
bar(x);
20
}
21
22