1; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noprobe.perfscript --binary=%S/Inputs/noprobe.perfbin --output=%t --skip-symbolization 2; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-RAW-PROFILE 3; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noprobe.mmap.perfscript --binary=%S/Inputs/noprobe.perfbin --output=%t --skip-symbolization 4; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-RAW-PROFILE 5; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noprobe.aggperfscript --binary=%S/Inputs/noprobe.perfbin --output=%t --skip-symbolization 6; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-RAW-PROFILE-AGG 7; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noprobe.perfscript --binary=%S/Inputs/noprobe.perfbin --output=%t 8; RUN: FileCheck %s --input-file %t --check-prefix=CHECK 9 10;CHECK: foo:1241:0 11;CHECK: 0: 0 12;CHECK: 1: 0 13;CHECK: 2: 19 14;CHECK: 3: 21 bar:21 15;CHECK: 4: 0 16;CHECK: 5: 0 17;CHECK: bar:926:21 18;CHECK: 0: 20 19;CHECK: 1: 20 20;CHECK: 2: 13 21;CHECK: 4: 6 22;CHECK: 5: 18 23 24CHECK-RAW-PROFILE: 7 25CHECK-RAW-PROFILE-NEXT: 5b0-5c8:7 26CHECK-RAW-PROFILE-NEXT: 5b0-5d7:13 27CHECK-RAW-PROFILE-NEXT: 5dc-5e9:6 28CHECK-RAW-PROFILE-NEXT: 5e5-5e9:12 29CHECK-RAW-PROFILE-NEXT: 5ff-62f:19 30CHECK-RAW-PROFILE-NEXT: 634-637:18 31CHECK-RAW-PROFILE-NEXT: 645-645:18 32CHECK-RAW-PROFILE-NEXT: 6 33CHECK-RAW-PROFILE-NEXT: 5c8->5dc:7 34CHECK-RAW-PROFILE-NEXT: 5d7->5e5:13 35CHECK-RAW-PROFILE-NEXT: 5e9->634:18 36CHECK-RAW-PROFILE-NEXT: 62f->5b0:21 37CHECK-RAW-PROFILE-NEXT: 637->645:18 38CHECK-RAW-PROFILE-NEXT: 645->5ff:19 39 40 41CHECK-RAW-PROFILE-AGG: 7 42CHECK-RAW-PROFILE-AGG-NEXT: 5b0-5c8:13 43CHECK-RAW-PROFILE-AGG-NEXT: 5b0-5d7:21 44CHECK-RAW-PROFILE-AGG-NEXT: 5dc-5e9:10 45CHECK-RAW-PROFILE-AGG-NEXT: 5e5-5e9:20 46CHECK-RAW-PROFILE-AGG-NEXT: 5ff-62f:31 47CHECK-RAW-PROFILE-AGG-NEXT: 634-637:30 48CHECK-RAW-PROFILE-AGG-NEXT: 645-645:30 49CHECK-RAW-PROFILE-AGG-NEXT: 6 50CHECK-RAW-PROFILE-AGG-NEXT: 5c8->5dc:13 51CHECK-RAW-PROFILE-AGG-NEXT: 5d7->5e5:21 52CHECK-RAW-PROFILE-AGG-NEXT: 5e9->634:30 53CHECK-RAW-PROFILE-AGG-NEXT: 62f->5b0:35 54CHECK-RAW-PROFILE-AGG-NEXT: 637->645:30 55CHECK-RAW-PROFILE-AGG-NEXT: 645->5ff:31 56 57 58; original code: 59; clang -O3 -g -fdebug-info-for-profiling test.c -fno-inline -o a.out 60#include <stdio.h> 61 62int bar(int x, int y) { 63 if (x % 3) { 64 return x - y; 65 } 66 return x + y; 67} 68 69void foo() { 70 int s, i = 0; 71 while (i++ < 4000 * 4000) 72 if (i % 91) s = bar(i, s); else s += 30; 73 printf("sum is %d\n", s); 74} 75 76int main() { 77 foo(); 78 return 0; 79} 80