brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · a893108 Raw
54 lines · c
1// RUN: rm -fr %t.promo.prof2// RUN: rm -fr %t.nopromo.prof3// RUN: %clang_pgogen=%t.promo.prof/ -o %t.promo.gen -O2 %s4// RUN: %clang_pgogen=%t.promo.prof/ -o %t.promo.gen.ll -emit-llvm -S -O2 %s5// RUN: cat %t.promo.gen.ll | FileCheck --check-prefix=PROMO %s6// RUN: %run %t.promo.gen7// RUN: llvm-profdata merge -o %t.promo.profdata %t.promo.prof/8// RUN: llvm-profdata show --counts --all-functions %t.promo.profdata  > %t.promo.dump9// RUN: %clang_pgogen=%t.nopromo.prof/ -mllvm -do-counter-promotion=false -o %t.nopromo.gen -O2 %s10// RUN: %run %t.nopromo.gen11// RUN: llvm-profdata merge -o %t.nopromo.profdata %t.nopromo.prof/12// RUN: llvm-profdata show --counts --all-functions %t.nopromo.profdata  > %t.nopromo.dump13// RUN: llvm-profdata show %t.promo.profdata > %t.promo.dump14// RUN: llvm-profdata show %t.nopromo.profdata > %t.nopromo.dump15// RUN: diff %t.promo.dump %t.nopromo.dump16int g;17__attribute__((noinline)) void bar() {18 g++;19}20 21extern int printf(const char*,...);22 23int c = 10;24 25int main()26// PROMO-LABEL: @main27// PROMO: load{{.*}}@__profc_main{{.*}}28// PROMO-NEXT: add29// PROMO-NEXT: store{{.*}}@__profc_main{{.*}}30// PROMO: load{{.*}}@__profc_main{{.*}}31// PROMO-NEXT: add32// PROMO-NEXT: store{{.*}}@__profc_main{{.*}}33// PROMO-NEXT: load{{.*}}@__profc_main{{.*}}34// PROMO-NEXT: add35// PROMO-NEXT: store{{.*}}@__profc_main{{.*}}36{37  int i, j, k;38 39  g = 0;40  for (i = 0; i < c; i++)41    for (j = 0; j < c; j++)42       for (k = 0; k < c; k++)43           bar();44 45  for (i = 0; i < c; i++)46    for (j = 0; j < 10*c;j++)47        bar();48 49  for (i = 0; i < 100*c; i++)50    bar();51 52  return 0;53}54