brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · f115de4 Raw
89 lines · c
1// REQUIRES: target={{.*windows-msvc.*}}2// REQUIRES: lld-available3 4// RUN: %clang_profgen -O2 -o %t %s5// RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t6// RUN: llvm-profdata show --binary-ids %t.profraw > %t.out7// RUN: FileCheck %s --check-prefix=NO-BINARY-ID < %t.out8// RUN: llvm-profdata merge -o %t.profdata %t.profraw9 10// RUN: %clang_profgen -fuse-ld=lld -Wl,-build-id -O2 -o %t %s11// RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t12// RUN: llvm-profdata show --binary-ids %t.profraw > %t.profraw.out13// RUN: FileCheck %s --check-prefix=BINARY-ID-RAW-PROF < %t.profraw.out14 15// RUN: rm -rf %t.profdir16// RUN: env LLVM_PROFILE_FILE=%t.profdir/default_%m.profraw %run %t17// RUN: env LLVM_PROFILE_FILE=%t.profdir/default_%m.profraw %run %t18// RUN: env LLVM_PROFILE_FILE=%t.profdir/default_%m.profraw %run %t19// RUN: llvm-profdata show --binary-ids  %t.profdir/default_*.profraw > %t.profraw.out20// RUN: FileCheck %s --check-prefix=ONE-BINARY-ID < %t.profraw.out21 22// RUN: llvm-profdata merge -o %t.profdata %t.profdir/default_*.profraw23// RUN: llvm-profdata show --binary-ids %t.profdata > %t.profdata.out24// RUN: FileCheck %s --check-prefix=ONE-BINARY-ID < %t.profdata.out25 26// Test raw profiles with DLLs.27// RUN: rm -rf %t.dir && split-file %s %t.dir28// RUN: %clang_profgen -O2 %t.dir/foo.c -fuse-ld=lld -Wl,-build-id -Wl,-dll -o %t.dir/foo.dll29// RUN: %clang_profgen -O2 %t.dir/bar.c -fuse-ld=lld -Wl,-build-id -Wl,-dll -o %t.dir/bar.dll30// RUN: %clang_profgen -O2 %t.dir/main.c -fuse-ld=lld -Wl,-build-id %t.dir/foo.lib %t.dir/bar.lib -o %t.dir/main.exe31// RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t.dir/main.exe32// RUN: llvm-profdata show --binary-ids %t.profraw > %t.profraw.out33// RUN: llvm-profdata merge -o %t.profdata %t.profraw34// RUN: FileCheck %s --check-prefix=MULTI-BINARY-ID < %t.profraw.out35 36// RUN: llvm-profdata merge -o %t.profdata %t.profraw37// RUN: llvm-profdata show --binary-ids %t.profdata > %t.profdata.out38// RUN: FileCheck %s --check-prefix=MULTI-BINARY-ID < %t.profraw.out39 40//--- foo.c41__declspec(dllexport) void foo() {}42 43//--- bar.c44__declspec(dllexport) void bar() {}45 46//--- main.c47__declspec(dllimport) void foo();48__declspec(dllimport) void bar();49int main() {50  foo();51  bar();52  return 0;53}54 55// NO-BINARY-ID: Instrumentation level: Front-end56// NO-BINARY-ID-NEXT: Total functions: 357// NO-BINARY-ID-NEXT: Maximum function count: 158// NO-BINARY-ID-NEXT: Maximum internal block count: 059// NO-BINARY-ID-NOT: Binary IDs:60 61// BINARY-ID-RAW-PROF: Instrumentation level: Front-end62// BINARY-ID-RAW-PROF-NEXT: Total functions: 363// BINARY-ID-RAW-PROF-NEXT: Maximum function count: 164// BINARY-ID-RAW-PROF-NEXT: Maximum internal block count: 065// BINARY-ID-RAW-PROF-NEXT: Total number of blocks:66// BINARY-ID-RAW-PROF-NEXT: Total count:67// BINARY-ID-RAW-PROF-NEXT: Binary IDs:68// BINARY-ID-RAW-PROF-NEXT: {{[0-9a-f]+}}69 70// ONE-BINARY-ID: Instrumentation level: Front-end71// ONE-BINARY-ID-NEXT: Total functions: 372// ONE-BINARY-ID-NEXT: Maximum function count: 373// ONE-BINARY-ID-NEXT: Maximum internal block count: 074// ONE-BINARY-ID-NEXT: Total number of blocks:75// ONE-BINARY-ID-NEXT: Total count:76// ONE-BINARY-ID-NEXT: Binary IDs:77// ONE-BINARY-ID-NEXT: {{[0-9a-f]+}}78 79// MULTI-BINARY-ID: Instrumentation level: Front-end80// MULTI-BINARY-ID-NEXT: Total functions: 381// MULTI-BINARY-ID-NEXT: Maximum function count: 182// MULTI-BINARY-ID-NEXT: Maximum internal block count: 083// MULTI-BINARY-ID-NEXT: Total number of blocks:84// MULTI-BINARY-ID-NEXT: Total count:85// MULTI-BINARY-ID-NEXT: Binary IDs:86// MULTI-BINARY-ID-NEXT: {{[0-9a-f]+}}87// MULTI-BINARY-ID-NEXT: {{[0-9a-f]+}}88// MULTI-BINARY-ID-NEXT: {{[0-9a-f]+}}89