156 lines · plain
1; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-noprobe.perfscript --binary=%S/Inputs/inline-noprobe.perfbin --output=%t --skip-symbolization2; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-RAW-PROFILE3; RUN: llvm-profgen --format=text --use-dwarf-correlation --perfscript=%S/Inputs/inline-noprobe.perfscript --binary=%S/Inputs/inline-noprobe.perfbin --output=%t --skip-symbolization4; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-RAW-PROFILE5; RUN: llvm-profgen --format=text --unsymbolized-profile=%t --binary=%S/Inputs/inline-noprobe.perfbin --output=%t16; RUN: FileCheck %s --input-file %t1 --check-prefix=CHECK7; RUN: llvm-profgen --format=text --unsymbolized-profile=%t --binary=%S/Inputs/inline-noprobe.perfbin --output=%t1 --update-total-samples8; RUN: FileCheck %s --input-file %t1 --check-prefix=CHECK-UPDATE-TOTAL-SAMPLE9; RUN: llvm-profgen --format=text --use-dwarf-correlation --perfscript=%S/Inputs/inline-noprobe.perfscript --binary=%S/Inputs/inline-noprobe.perfbin --output=%t10; RUN: FileCheck %s --input-file %t --check-prefix=CHECK11; RUN: llvm-profgen --format=text --use-dwarf-correlation --perfscript=%S/Inputs/inline-noprobe.perfscript --binary=%S/Inputs/inline-noprobe.perfbin --output=%t --mark-all-context-preinlined12; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-MARK-PREINLINED13 14; RUN: echo -e "0\n0" > %t15; RUN: llvm-profgen --format=text --unsymbolized-profile=%t --binary=%S/Inputs/inline-noprobe.perfbin --output=%t1 --fill-zero-for-all-funcs16; RUN: FileCheck %s --input-file %t1 --check-prefix=CHECK-ALL-ZERO17; RUN: llvm-profgen --format=text --unsymbolized-profile=%S/Inputs/out-of-bounds.raw.prof --binary=%S/Inputs/inline-noprobe.perfbin --output=%t118; RUN: FileCheck %s --input-file %t1 --check-prefix=CHECK-OB19 20CHECK: main:2609:021CHECK-NEXT: 0: 022CHECK-NEXT: 2: 023CHECK-NEXT: 1: foo:260924CHECK-NEXT: 2.1: 4225CHECK-NEXT: 3: 6226CHECK-NEXT: 3.2: 2127CHECK-NEXT: 4: 028CHECK-NEXT: 65526: 6229CHECK-NEXT: 3.1: bar:54630CHECK-NEXT: 1: 4231CHECK-NEXT: 65533: 4232CHECK-NEXT: 3.2: bar:18933CHECK-NEXT: 1: 2134 35CHECK-MARK-PREINLINED: main:2609:036CHECK-MARK-PREINLINED-NEXT: 0: 037CHECK-MARK-PREINLINED-NEXT: 2: 038CHECK-MARK-PREINLINED-NEXT: 1: foo:260939CHECK-MARK-PREINLINED-NEXT: 2.1: 4240CHECK-MARK-PREINLINED-NEXT: 3: 6241CHECK-MARK-PREINLINED-NEXT: 3.2: 2142CHECK-MARK-PREINLINED-NEXT: 4: 043CHECK-MARK-PREINLINED-NEXT: 65526: 6244CHECK-MARK-PREINLINED-NEXT: 3.1: bar:54645CHECK-MARK-PREINLINED-NEXT: 1: 4246CHECK-MARK-PREINLINED-NEXT: 65533: 4247CHECK-MARK-PREINLINED-NEXT: !Attributes: 248CHECK-MARK-PREINLINED-NEXT: 3.2: bar:18949CHECK-MARK-PREINLINED-NEXT: 1: 2150CHECK-MARK-PREINLINED-NEXT: !Attributes: 251CHECK-MARK-PREINLINED-NEXT: !Attributes: 252CHECK-MARK-PREINLINED-NEXT: !Attributes: 253 54CHECK-UPDATE-TOTAL-SAMPLE: main:292:055CHECK-UPDATE-TOTAL-SAMPLE: 0: 056CHECK-UPDATE-TOTAL-SAMPLE: 2: 057CHECK-UPDATE-TOTAL-SAMPLE: 1: foo:29258CHECK-UPDATE-TOTAL-SAMPLE: 2.1: 4259CHECK-UPDATE-TOTAL-SAMPLE: 3: 6260CHECK-UPDATE-TOTAL-SAMPLE: 3.2: 2161CHECK-UPDATE-TOTAL-SAMPLE: 4: 062CHECK-UPDATE-TOTAL-SAMPLE: 65526: 6263CHECK-UPDATE-TOTAL-SAMPLE: 3.1: bar:8464CHECK-UPDATE-TOTAL-SAMPLE: 1: 4265CHECK-UPDATE-TOTAL-SAMPLE: 65533: 4266CHECK-UPDATE-TOTAL-SAMPLE: 3.2: bar:2167CHECK-UPDATE-TOTAL-SAMPLE: 1: 2168 69CHECK-ALL-ZERO: bar:0:070CHECK-ALL-ZERO: 1: 071CHECK-ALL-ZERO: 5: 072CHECK-ALL-ZERO: foo:0:073CHECK-ALL-ZERO: 0: 074CHECK-ALL-ZERO: 2.1: 075CHECK-ALL-ZERO: 3: 076CHECK-ALL-ZERO: 3.2: 077CHECK-ALL-ZERO: 4: 078CHECK-ALL-ZERO: 3.1: bar:079CHECK-ALL-ZERO: 1: 080CHECK-ALL-ZERO: 3.2: bar:081CHECK-ALL-ZERO: 1: 082CHECK-ALL-ZERO: 7: 083CHECK-ALL-ZERO: main:0:084CHECK-ALL-ZERO: 0: 085CHECK-ALL-ZERO: 2: 086CHECK-ALL-ZERO: 1: foo:087CHECK-ALL-ZERO: 2.1: 088CHECK-ALL-ZERO: 3: 089CHECK-ALL-ZERO: 3.2: 090CHECK-ALL-ZERO: 4: 091CHECK-ALL-ZERO: 3.1: bar:092CHECK-ALL-ZERO: 1: 093CHECK-ALL-ZERO: 3.2: bar:094CHECK-ALL-ZERO: 1: 095 96CHECK-RAW-PROFILE: 397CHECK-RAW-PROFILE-NEXT: 650-691:2198CHECK-RAW-PROFILE-NEXT: 669-677:2099CHECK-RAW-PROFILE-NEXT: 669-691:21100CHECK-RAW-PROFILE-NEXT: 2101CHECK-RAW-PROFILE-NEXT: 677->650:21102CHECK-RAW-PROFILE-NEXT: 691->669:43103 104;CHECK-OB: foo:114:0105;CHECK-OB: 0: 1106;CHECK-OB: 2.1: 1107;CHECK-OB: 3: 1108;CHECK-OB: 3.2: 1109;CHECK-OB: 4: 1110;CHECK-OB: 3.1: bar:13111;CHECK-OB: 1: 1112;CHECK-OB: 65533: 1113;CHECK-OB: 3.2: bar:24114;CHECK-OB: 1: 1115;CHECK-OB: 7: 1116;CHECK-OB: main:100:0117;CHECK-OB: 0: 1118;CHECK-OB: 2: 1119;CHECK-OB: 1: foo:80120;CHECK-OB: 2.1: 1121;CHECK-OB: 3: 1122;CHECK-OB: 3.2: 1123;CHECK-OB: 4: 1124;CHECK-OB: 65526: 1125;CHECK-OB: 3.1: bar:13126;CHECK-OB: 1: 1127;CHECK-OB: 65533: 1128;CHECK-OB: 3.2: bar:9129;CHECK-OB: 1: 1130;CHECK-OB: bar:14:0131;CHECK-OB: 1: 1132;CHECK-OB: 5: 1133 134; original code:135; clang -O3 -g -fdebug-info-for-profiling test.c -o a.out136#include <stdio.h>137 138int bar(int x, int y) {139 if (x % 2) {140 return x - y;141 }142 return x + y;143}144 145void foo() {146 int s, i = 0;147 while (i++ < 4000 * 4000)148 if (i % 3) s = bar(i, s); else s += bar(s, i);149 printf("sum is %d\n", s);150}151 152int main() {153 foo();154 return 0;155}156