brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.6 KiB · 93a6852 Raw
109 lines · c
1// REQUIRES: linux2// RUN: %clang_profgen -Wl,--build-id=none -O2 -o %t %s3// RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t4// RUN: llvm-profdata show --binary-ids %t.profraw > %t.out5// RUN: FileCheck %s --check-prefix=NO-BINARY-ID < %t.out6// RUN: llvm-profdata merge -o %t.profdata %t.profraw7 8// RUN: %clang_profgen -Wl,--build-id -O2 -o %t %s9// RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t10// RUN: llvm-profdata show --binary-ids %t.profraw > %t.profraw.out11// RUN: FileCheck %s --check-prefix=BINARY-ID-RAW-PROF < %t.profraw.out12 13// RUN: rm -rf %t.profdir14// RUN: env LLVM_PROFILE_FILE=%t.profdir/default_%m.profraw %run %t15// RUN: env LLVM_PROFILE_FILE=%t.profdir/default_%m.profraw %run %t16// RUN: env LLVM_PROFILE_FILE=%t.profdir/default_%m.profraw %run %t17// RUN: llvm-profdata show --binary-ids  %t.profdir/default_*.profraw > %t.profraw.out18// RUN: FileCheck %s --check-prefix=BINARY-ID-MERGE-PROF < %t.profraw.out19 20// RUN: llvm-profdata merge -o %t.profdata %t.profdir/default_*.profraw21// RUN: llvm-profdata show --binary-ids %t.profdata > %t.profdata.out22// RUN: FileCheck %s --check-prefix=BINARY-ID-INDEXED-PROF < %t.profdata.out23 24// Test raw profiles with shared libraries.25// RUN: split-file %s %t.dir26// RUN: %clang_profgen -Wl,--build-id -fpic -shared -O2 %t.dir/foo.c -o %t.dir/libfoo.so27// RUN: %clang_profgen -Wl,--build-id -fpic -shared -O2 %t.dir/bar.c -o %t.dir/libbar.so28// RUN: %clang_profgen -Wl,--build-id -O2 %t.dir/main.c %t.dir/libfoo.so %t.dir/libbar.so -o %t29// RUN: env LLVM_PROFILE_FILE=%t.profraw LD_LIBRARY_PATH=%t.dir %run %t30// RUN: llvm-profdata show --binary-ids %t.profraw > %t.profraw.out31// RUN: llvm-profdata merge -o %t.profdata %t.profraw32// RUN: FileCheck %s --check-prefix=BINARY-ID-SHARE-RAW-PROF < %t.profraw.out33 34// RUN: llvm-profdata merge -o %t.profdata %t.profraw35// RUN: llvm-profdata show --binary-ids %t.profdata > %t.profdata.out36// RUN: FileCheck %s --check-prefix=BINARY-ID-SHARE-INDEXED-PROF < %t.profraw.out37 38//--- foo.c39void foo() {40}41 42//--- bar.c43void bar() {44}45 46//--- main.c47void foo();48void 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: 366// BINARY-ID-RAW-PROF-NEXT: Total count: 367// BINARY-ID-RAW-PROF-NEXT: Binary IDs:68// BINARY-ID-RAW-PROF-NEXT: {{[0-9a-f]+}}69 70// BINARY-ID-MERGE-PROF: Instrumentation level: Front-end71// BINARY-ID-MERGE-PROF-NEXT: Total functions: 372// BINARY-ID-MERGE-PROF-NEXT: Maximum function count: 373// BINARY-ID-MERGE-PROF-NEXT: Maximum internal block count: 074// BINARY-ID-MERGE-PROF-NEXT: Total number of blocks: 375// BINARY-ID-MERGE-PROF-NEXT: Total count: 976// BINARY-ID-MERGE-PROF-NEXT: Binary IDs:77// BINARY-ID-MERGE-PROF-NEXT: {{[0-9a-f]+}}78 79// BINARY-ID-INDEXED-PROF: Instrumentation level: Front-end80// BINARY-ID-INDEXED-PROF-NEXT: Total functions: 381// BINARY-ID-INDEXED-PROF-NEXT: Maximum function count: 382// BINARY-ID-INDEXED-PROF-NEXT: Maximum internal block count: 083// BINARY-ID-INDEXED-PROF-NEXT: Total number of blocks: 384// BINARY-ID-INDEXED-PROF-NEXT: Total count: 985// BINARY-ID-INDEXED-PROF-NEXT: Binary IDs:86// BINARY-ID-INDEXED-PROF-NEXT: {{[0-9a-f]+}}87 88// BINARY-ID-SHARE-RAW-PROF: Instrumentation level: Front-end89// BINARY-ID-SHARE-RAW-PROF-NEXT: Total functions: 390// BINARY-ID-SHARE-RAW-PROF-NEXT: Maximum function count: 191// BINARY-ID-SHARE-RAW-PROF-NEXT: Maximum internal block count: 092// BINARY-ID-SHARE-RAW-PROF-NEXT: Total number of blocks: 393// BINARY-ID-SHARE-RAW-PROF-NEXT: Total count: 394// BINARY-ID-SHARE-RAW-PROF-NEXT: Binary IDs:95// BINARY-ID-SHARE-RAW-PROF-NEXT: {{[0-9a-f]+}}96// BINARY-ID-SHARE-RAW-PROF-NEXT: {{[0-9a-f]+}}97// BINARY-ID-SHARE-RAW-PROF-NEXT: {{[0-9a-f]+}}98 99// BINARY-ID-SHARE-INDEXED-PROF: Instrumentation level: Front-end100// BINARY-ID-SHARE-INDEXED-PROF-NEXT: Total functions: 3101// BINARY-ID-SHARE-INDEXED-PROF-NEXT: Maximum function count: 1102// BINARY-ID-SHARE-INDEXED-PROF-NEXT: Maximum internal block count: 0103// BINARY-ID-SHARE-INDEXED-PROF-NEXT: Total number of blocks: 3104// BINARY-ID-SHARE-INDEXED-PROF-NEXT: Total count: 3105// BINARY-ID-SHARE-INDEXED-PROF-NEXT: Binary IDs:106// BINARY-ID-SHARE-INDEXED-PROF-NEXT: {{[0-9a-f]+}}107// BINARY-ID-SHARE-INDEXED-PROF-NEXT: {{[0-9a-f]+}}108// BINARY-ID-SHARE-INDEXED-PROF-NEXT: {{[0-9a-f]+}}109