21 lines · cpp
1// Synthetic benchmark for __tsan_func_entry/exit (spends ~75% there).2 3void foo(bool x);4 5int 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