69 lines · plain
1; RUN: llvm-profgen --format=text --ignore-stack-samples --perfscript=%S/Inputs/inline-cs-pseudoprobe.perfscript --binary=%S/Inputs/inline-cs-pseudoprobe.perfbin --output=%t --profile-summary-cold-count=02; RUN: FileCheck %s --input-file %t3; RUN: llvm-profgen --format=text --ignore-stack-samples --perfscript=%S/Inputs/inline-cs-pseudoprobe.perfscript --binary=%S/Inputs/inline-cs-pseudoprobe.perfbin --output=%t1 --profile-summary-cold-count=0 --mark-all-context-preinlined4; RUN: FileCheck %s --input-file %t1 --check-prefix=CHECK-MARK-PREINLINED5 6; CHECK: main:88:07; CHECK-NEXT: 1: 08; CHECK-NEXT: 2: foo:889; CHECK-NEXT: 1: 010; CHECK-NEXT: 2: 1511; CHECK-NEXT: 3: 1512; CHECK-NEXT: 4: 1413; CHECK-NEXT: 5: 114; CHECK-NEXT: 6: 1515; CHECK-NEXT: 7: 016; CHECK-NEXT: 9: 017; CHECK-NEXT: 8: bar:2818; CHECK-NEXT: 1: 1419; CHECK-NEXT: 4: 1420; CHECK-NEXT: !CFGChecksum: 7261722075621; CHECK-NEXT: !CFGChecksum: 56308890401323622; CHECK-NEXT: !CFGChecksum: 28147927167795123 24; CHECK-MARK-PREINLINED: main:88:025; CHECK-MARK-PREINLINED-NEXT: 1: 026; CHECK-MARK-PREINLINED-NEXT: 2: foo:8827; CHECK-MARK-PREINLINED-NEXT: 1: 028; CHECK-MARK-PREINLINED-NEXT: 2: 1529; CHECK-MARK-PREINLINED-NEXT: 3: 1530; CHECK-MARK-PREINLINED-NEXT: 4: 1431; CHECK-MARK-PREINLINED-NEXT: 5: 132; CHECK-MARK-PREINLINED-NEXT: 6: 1533; CHECK-MARK-PREINLINED-NEXT: 7: 034; CHECK-MARK-PREINLINED-NEXT: 9: 035; CHECK-MARK-PREINLINED-NEXT: 8: bar:2836; CHECK-MARK-PREINLINED-NEXT: 1: 1437; CHECK-MARK-PREINLINED-NEXT: 4: 1438; CHECK-MARK-PREINLINED-NEXT: !CFGChecksum: 7261722075639; CHECK-MARK-PREINLINED-NEXT: !Attributes: 2 40; CHECK-MARK-PREINLINED-NEXT: !CFGChecksum: 56308890401323641; CHECK-MARK-PREINLINED-NEXT: !Attributes: 242; CHECK-MARK-PREINLINED-NEXT: !CFGChecksum: 28147927167795143; CHECK-MARK-PREINLINED-NEXT: !Attributes: 244 45; clang -O3 -fuse-ld=lld -fpseudo-probe-for-profiling46; -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Xclang -mdisable-tail-calls47; -g test.c -o a.out48 49#include <stdio.h>50 51int bar(int x, int y) {52 if (x % 3) {53 return x - y;54 }55 return x + y;56}57 58void foo() {59 int s, i = 0;60 while (i++ < 4000 * 4000)61 if (i % 91) s = bar(i, s); else s += 30;62 printf("sum is %d\n", s);63}64 65int main() {66 foo();67 return 0;68}69