1*acfd0a34SHongtao Yu; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noprobe.perfscript --binary=%S/Inputs/noprobe.perfbin --output=%t1 2*acfd0a34SHongtao Yu; RUN: FileCheck %s --input-file %t1 --check-prefix=CALLSITE 3*acfd0a34SHongtao Yu; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noprobe.perfscript --binary=%S/Inputs/noprobe.perfbin --output=%t2 --update-total-samples=1 4*acfd0a34SHongtao Yu; RUN: FileCheck %s --input-file %t2 --check-prefix=TOTAL 5*acfd0a34SHongtao Yu 6*acfd0a34SHongtao Yu 7*acfd0a34SHongtao Yu;CALLSITE: foo:1241:0 8*acfd0a34SHongtao Yu;CALLSITE: 0: 0 9*acfd0a34SHongtao Yu;CALLSITE: 1: 0 10*acfd0a34SHongtao Yu;CALLSITE: 2: 19 11*acfd0a34SHongtao Yu;CALLSITE: 3: 21 bar:21 12*acfd0a34SHongtao Yu;CALLSITE: 4: 0 13*acfd0a34SHongtao Yu;CALLSITE: 5: 0 14*acfd0a34SHongtao Yu 15*acfd0a34SHongtao Yu;TOTAL: foo:40:0 16*acfd0a34SHongtao Yu;TOTAL: 0: 0 17*acfd0a34SHongtao Yu;TOTAL: 1: 0 18*acfd0a34SHongtao Yu;TOTAL: 2: 19 19*acfd0a34SHongtao Yu;TOTAL: 3: 21 bar:21 20*acfd0a34SHongtao Yu;TOTAL: 4: 0 21*acfd0a34SHongtao Yu;TOTAL: 5: 0 22*acfd0a34SHongtao Yu 23*acfd0a34SHongtao Yu 24*acfd0a34SHongtao Yu; original code: 25*acfd0a34SHongtao Yu; clang -O3 -g -fdebug-info-for-profiling test.c -fno-inline -o a.out 26*acfd0a34SHongtao Yu#include <stdio.h> 27*acfd0a34SHongtao Yu 28*acfd0a34SHongtao Yuint bar(int x, int y) { 29*acfd0a34SHongtao Yu if (x % 3) { 30*acfd0a34SHongtao Yu return x - y; 31*acfd0a34SHongtao Yu } 32*acfd0a34SHongtao Yu return x + y; 33*acfd0a34SHongtao Yu} 34*acfd0a34SHongtao Yu 35*acfd0a34SHongtao Yuvoid foo() { 36*acfd0a34SHongtao Yu int s, i = 0; 37*acfd0a34SHongtao Yu while (i++ < 4000 * 4000) 38*acfd0a34SHongtao Yu if (i % 91) s = bar(i, s); else s += 30; 39*acfd0a34SHongtao Yu printf("sum is %d\n", s); 40*acfd0a34SHongtao Yu} 41*acfd0a34SHongtao Yu 42*acfd0a34SHongtao Yuint main() { 43*acfd0a34SHongtao Yu foo(); 44*acfd0a34SHongtao Yu return 0; 45*acfd0a34SHongtao Yu} 46