1b9db7036SHongtao Yu;; The test fails on Windows. Fix it before removing the following requirement. 2b9db7036SHongtao Yu; REQUIRES: x86_64-linux 3bc380c09SHongtao Yu; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/cs-interrupt.perfscript --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t --skip-symbolization --profile-summary-cold-count=0 --csspgo-preinliner=0 --gen-cs-nested-profile=0 4964053d5Swlei; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-UNWINDER 5bc380c09SHongtao Yu; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/cs-interrupt.perfscript --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t --profile-summary-cold-count=0 --csspgo-preinliner=0 --gen-cs-nested-profile=0 68c2c9728SHongtao Yu; RUN: FileCheck %s --input-file %t 78c2c9728SHongtao Yu 8*bfcb2c11Swlei; CHECK: [main:1 @ foo]:72:0 9*bfcb2c11Swlei; CHECK: 2: 4 10*bfcb2c11Swlei; CHECK: 3: 4 bar:4 11*bfcb2c11Swlei; CHECK: [main:1 @ foo:3 @ bar]:67:4 12*bfcb2c11Swlei; CHECK: 0: 4 138c2c9728SHongtao Yu; CHECK: 1: 5 148c2c9728SHongtao Yu; CHECK: 2: 3 158c2c9728SHongtao Yu; CHECK: 5: 4 16*bfcb2c11Swlei; CHECK: [foo]:32:0 17*bfcb2c11Swlei; CHECK: 2: 2 18*bfcb2c11Swlei; CHECK: 3: 2 bar:2 19*bfcb2c11Swlei; CHECK: [bar]:8:2 20*bfcb2c11Swlei; CHECK: 0: 1 21*bfcb2c11Swlei; CHECK: 1: 1 228c2c9728SHongtao Yu 23*bfcb2c11Swlei; CHECK-UNWINDER: [] 24*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 0 25*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 1 26*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: ffffffffffc00001->5c3:1 27*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: [bar] 28*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 1 29*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 5b0-5c3:1 30*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 0 31*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: [foo] 32*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 2 33*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 5ff-62f:2 34*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 645-645:2 351422fa5fSwlei; CHECK-UNWINDER-NEXT: 3 36*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 62f->5b0:2 37*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 637->645:2 38*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 645->5ff:2 39*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: [main:1 @ foo] 40*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 3 41*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 5ff-62f:4 421422fa5fSwlei; CHECK-UNWINDER-NEXT: 634-637:4 43*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 645-645:4 441422fa5fSwlei; CHECK-UNWINDER-NEXT: 3 45*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 62f->5b0:4 46*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 637->645:4 47*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 645->5ff:4 481422fa5fSwlei; CHECK-UNWINDER-NEXT: [main:1 @ foo:3 @ bar] 49*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 4 501422fa5fSwlei; CHECK-UNWINDER-NEXT: 5b0-5c8:2 51*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 5b0-5d7:2 52*bfcb2c11Swlei; CHECK-UNWINDER-NEXT: 5c3-5d7:1 531422fa5fSwlei; CHECK-UNWINDER-NEXT: 5e5-5e9:4 541422fa5fSwlei; CHECK-UNWINDER-NEXT: 3 551422fa5fSwlei; CHECK-UNWINDER-NEXT: 5c8->5dc:2 561422fa5fSwlei; CHECK-UNWINDER-NEXT: 5d7->5e5:4 571422fa5fSwlei; CHECK-UNWINDER-NEXT: 5e9->634:4 588c2c9728SHongtao Yu 598c2c9728SHongtao Yu; original code: 608c2c9728SHongtao Yu; clang -O0 -g test.c -o a.out 618c2c9728SHongtao Yu#include <stdio.h> 628c2c9728SHongtao Yu 638c2c9728SHongtao Yuint bar(int x, int y) { 648c2c9728SHongtao Yu if (x % 3) { 658c2c9728SHongtao Yu return x - y; 668c2c9728SHongtao Yu } 678c2c9728SHongtao Yu return x + y; 688c2c9728SHongtao Yu} 698c2c9728SHongtao Yu 708c2c9728SHongtao Yuvoid foo() { 718c2c9728SHongtao Yu int s, i = 0; 728c2c9728SHongtao Yu while (i++ < 4000 * 4000) 738c2c9728SHongtao Yu if (i % 91) s = bar(i, s); else s += 30; 748c2c9728SHongtao Yu printf("sum is %d\n", s); 758c2c9728SHongtao Yu} 768c2c9728SHongtao Yu 778c2c9728SHongtao Yuint main() { 788c2c9728SHongtao Yu foo(); 798c2c9728SHongtao Yu return 0; 808c2c9728SHongtao Yu} 81