llvm-project/clang/test/CodeGen/pgo-cold-function-coverage.c
Lei Wang bef3b54ea1
[InstrPGO] Avoid using global variable to fix potential data race (#114364)
In https://github.com/llvm/llvm-project/pull/109837, it sets a global
variable(`PGOInstrumentColdFunctionOnly`) in PassBuilderPipelines.cpp
which introduced a data race detected by TSan. To fix this, I decouple
the flag setting, the flags are now set
separately(`instrument-cold-function-only-path` is required to be used
with `--pgo-instrument-cold-function-only`).
2024-10-31 21:28:13 -07:00

20 lines
581 B
C

// Test -fprofile-generate-cold-function-coverage
// RUN: rm -rf %t && split-file %s %t
// RUN: %clang --target=x86_64 -O2 -fprofile-generate-cold-function-coverage=/xxx/yyy/ -fprofile-sample-accurate -fprofile-sample-use=%t/pgo-cold-func.prof -S -emit-llvm -o - %t/pgo-cold-func.c | FileCheck %s
// CHECK: @__llvm_profile_filename = {{.*}} c"/xxx/yyy/default_%m.profraw\00"
// CHECK: store i8 0, ptr @__profc_bar, align 1
// CHECK-NOT: @__profc_foo
//--- pgo-cold-func.prof
foo:1:1
1: 1
//--- pgo-cold-func.c
int bar(int x) { return x;}
int foo(int x) {
return x;
}