brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · 8d70e58 Raw
95 lines · plain
1;; The test fails on Windows. Fix it before removing the following requirement.2; REQUIRES: x86_64-linux3; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-tailcall-probe.perfscript --binary=%S/Inputs/noinline-tailcall-probe.perfbin --output=%t --profile-summary-hot-count=0 --csspgo-preinliner=0 --gen-cs-nested-profile=0 --infer-missing-frames=04; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-NOINFER5; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-tailcall-probe.perfscript --binary=%S/Inputs/noinline-tailcall-probe.perfbin --output=%t --profile-summary-hot-count=0 --csspgo-preinliner=0 --gen-cs-nested-profile=0 --infer-missing-frames=16; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-INFER7 8 9; CHECK-NOINFER:     [main:5 @ foo]:48:110; CHECK-NOINFER-NEXT: 1: 111; CHECK-NOINFER-NEXT: 2: 1012; CHECK-NOINFER-NEXT: 3: 913; CHECK-NOINFER-NEXT: 4: 914; CHECK-NOINFER-NEXT: 5: 015; CHECK-NOINFER-NEXT: 6: 916; CHECK-NOINFER-NEXT: 7: 117; CHECK-NOINFER-NEXT: 8: 9 bar:918; CHECK-NOINFER-NEXT: !CFGChecksum: 28161392730258019; CHECK-NOINFER-NEXT:[main:5 @ foo:8 @ bar]:18:920; CHECK-NOINFER-NEXT: 1: 921; CHECK-NOINFER-NEXT: 4: 922; CHECK-NOINFER-NEXT: !CFGChecksum: 7261722075623; CHECK-NOINFER-NEXT:[main]:3:024; CHECK-NOINFER-NEXT: 1: 025; CHECK-NOINFER-NEXT: 2: 126; CHECK-NOINFER-NEXT: 3: 127; CHECK-NOINFER-NEXT: 4: 028; CHECK-NOINFER-NEXT: 5: 1 go:129; CHECK-NOINFER-NEXT: 6: 030; CHECK-NOINFER-NEXT: !CFGChecksum: 56302211599700031; CHECK-NOINFER-NEXT:[main:5 @ go]:2:132; CHECK-NOINFER-NEXT: 1: 133; CHECK-NOINFER-NEXT: 2: 1 foo:134; CHECK-NOINFER-NEXT: !CFGChecksum: 28147927167795135 36; CHECK-INFER:     [main:5 @ go:2 @ foo]:48:137; CHECK-INFER-NEXT: 1: 138; CHECK-INFER-NEXT: 2: 1039; CHECK-INFER-NEXT: 3: 940; CHECK-INFER-NEXT: 4: 941; CHECK-INFER-NEXT: 5: 042; CHECK-INFER-NEXT: 6: 943; CHECK-INFER-NEXT: 7: 144; CHECK-INFER-NEXT: 8: 9 bar:945; CHECK-INFER-NEXT: !CFGChecksum: 28161392730258046; CHECK-INFER-NEXT:[main:5 @ go:2 @ foo:8 @ bar]:18:947; CHECK-INFER-NEXT: 1: 948; CHECK-INFER-NEXT: 4: 949; CHECK-INFER-NEXT: !CFGChecksum: 7261722075650; CHECK-INFER-NEXT:[main]:3:051; CHECK-INFER-NEXT: 1: 052; CHECK-INFER-NEXT: 2: 153; CHECK-INFER-NEXT: 3: 154; CHECK-INFER-NEXT: 4: 055; CHECK-INFER-NEXT: 5: 1 go:156; CHECK-INFER-NEXT: 6: 057; CHECK-INFER-NEXT: !CFGChecksum: 56302211599700058; CHECK-INFER-NEXT:[main:5 @ go]:2:159; CHECK-INFER-NEXT: 1: 160; CHECK-INFER-NEXT: 2: 1 foo:161; CHECK-INFER-NEXT: !CFGChecksum: 28147927167795162 63; original code:64; clang -O3 -fexperimental-new-pass-manager -fuse-ld=lld -fpseudo-probe-for-profiling65; -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g test.c  -o a.out66 67#include <stdio.h>68 69int s;70int bar(int x, int y) {71  if (x % 3) {72    return x - y;73  }74  return x + y;75}76 77int foo() {78  int i = 0;79  while (i++ < 4000)80    if (i % 91) s = bar(i, s); else s += 30;81  return 0;82}83 84void go() {85  foo();86}87 88int main() {89  int i = 0;90  while (i++ < 4000)91    go();92  printf("sum is %d\n", s);93  return 0;94}95