brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.2 KiB · 4ba51cd Raw
115 lines · plain
1# REQUIRES: system-linux2# RUN: llvm-bolt  %S/../../../llvm/test/tools/llvm-profgen/Inputs/noinline-cs-pseudoprobe.perfbin --print-pseudo-probes=all -o %t.bolt --lite=0 --enable-bat 2>&1 | FileCheck %s3 4# PREAGG: B X:0 #foo# 1 05# PREAGG: B X:0 #bar# 1 06# PREAGG: B X:0 #main# 1 07 8## Check pseudo-probes in regular YAML profile (non-BOLTed binary)9# RUN: link_fdata %s %S/../../../llvm/test/tools/llvm-profgen/Inputs/noinline-cs-pseudoprobe.perfbin %t.preagg PREAGG10# RUN: perf2bolt %S/../../../llvm/test/tools/llvm-profgen/Inputs/noinline-cs-pseudoprobe.perfbin -p %t.preagg --pa -w %t.yaml -o %t.fdata --profile-write-pseudo-probes11# RUN: FileCheck --input-file %t.yaml %s --check-prefix CHECK-YAML12## Check pseudo-probes in BAT YAML profile (BOLTed binary)13# RUN: link_fdata %s %t.bolt %t.preagg2 PREAGG14# RUN: perf2bolt %t.bolt -p %t.preagg2 --pa -w %t.yaml2 -o %t.fdata2 --profile-write-pseudo-probes15# RUN: FileCheck --input-file %t.yaml2 %s --check-prefix CHECK-YAML16# CHECK-YAML: name: bar17# CHECK-YAML: - bid: 018# CHECK-YAML:   probes: [ { blk: [ 1, 4 ] } ]19# CHECK-YAML: inline_tree: [ {  } ]20#21# CHECK-YAML: name: foo22# CHECK-YAML: - bid: 023# CHECK-YAML:   probes: [ { blk: [ 1, 2 ] } ]24# CHECK-YAML: inline_tree: [ { g: 2 } ]25#26# CHECK-YAML: name: main27# CHECK-YAML: - bid: 028# CHECK-YAML:   calls: [ { off: 0x4, fid: 0, cnt: 0, pp: 2 } ]29# CHECK-YAML:   probes: [ { } ]30# CHECK-YAML: inline_tree: [ { g: 1 } ]31#32# CHECK-YAML: pseudo_probe_desc:33# CHECK-YAML-NEXT: gs: [ 0xE413754A191DB537, 0xDB956436E78DD5FA, 0x5CF8C24CDB18BDAC ]34# CHECK-YAML-NEXT: gh: [ 2, 1, 0 ]35# CHECK-YAML-NEXT: hs: [ 0x200205A19C5B4, 0x10000FFFFFFFF, 0x10E852DA94 ]36#37## Check that without --profile-write-pseudo-probes option, no pseudo probes are38## generated39# RUN: perf2bolt %S/../../../llvm/test/tools/llvm-profgen/Inputs/noinline-cs-pseudoprobe.perfbin -p %t.preagg --pa -w %t.yaml3 -o %t.fdata40# RUN: FileCheck --input-file %t.yaml3 %s --check-prefix CHECK-NO-OPT41# CHECK-NO-OPT-NOT: probes:42# CHECK-NO-OPT-NOT: inline_tree:43# CHECK-NO-OPT-NOT: pseudo_probe_desc:44;; Report of decoding input pseudo probe binaries45 46; CHECK: GUID: 6699318081062747564 Name: foo47; CHECK: Hash: 56308890401323648; CHECK: GUID: 15822663052811949562 Name: main49; CHECK: Hash: 28147927167795150; CHECK: GUID: 16434608426314478903 Name: bar51; CHECK: Hash: 7261722075652 53CHECK:  [Probe]: FUNC: bar Index: 1  Type: Block54CHECK:  [Probe]: FUNC: bar Index: 4  Type: Block55CHECK:  [Probe]: FUNC: foo Index: 1  Type: Block56CHECK:  [Probe]: FUNC: foo Index: 2  Type: Block57CHECK:  [Probe]: FUNC: foo Index: 5  Type: Block58CHECK:  [Probe]: FUNC: foo Index: 6  Type: Block59CHECK:  [Probe]: FUNC: foo Index: 2  Type: Block60CHECK:  [Probe]: FUNC: foo Index: 3  Type: Block61CHECK:  [Probe]: FUNC: foo Index: 4  Type: Block62CHECK:  [Probe]: FUNC: foo Index: 8  Type: DirectCall63CHECK:  [Probe]: FUNC: foo Index: 6  Type: Block64CHECK:  [Probe]: FUNC: foo Index: 2  Type: Block65CHECK:  [Probe]: FUNC: foo Index: 7  Type: Block66CHECK:  [Probe]: FUNC: foo Index: 9  Type: DirectCall67CHECK:  [Probe]: FUNC: main Index: 1  Type: Block68CHECK:  [Probe]: FUNC: main Index: 2  Type: DirectCall69 70CHECK: Pseudo Probe Address Conversion results:71 72CHECK: Address: 0x201760 FUNC: bar Index: 1  Type: Block73CHECK: Address: 0x201760 FUNC: bar Index: 4  Type: Block74CHECK: Address: 0x201780 FUNC: foo Index: 1  Type: Block75CHECK: Address: 0x201780 FUNC: foo Index: 2  Type: Block76CHECK: Address: 0x20178d FUNC: foo Index: 5  Type: Block77CHECK: Address: 0x20178d FUNC: foo Index: 6  Type: Block78CHECK: Address: 0x20178d FUNC: foo Index: 2  Type: Block79CHECK: Address: 0x20179b FUNC: foo Index: 3  Type: Block80CHECK: Address: 0x2017ba FUNC: foo Index: 4  Type: Block81CHECK: Address: 0x2017bc FUNC: foo Index: 8  Type: DirectCall82CHECK: Address: 0x2017ba FUNC: foo Index: 6  Type: Block83CHECK: Address: 0x2017ba FUNC: foo Index: 2  Type: Block84CHECK: Address: 0x2017ce FUNC: foo Index: 7  Type: Block85CHECK: Address: 0x2017d5 FUNC: foo Index: 9  Type: DirectCall86CHECK: Address: 0x2017f0 FUNC: main Index: 1  Type: Block87CHECK: Address: 0x2017f4 FUNC: main Index: 2  Type: DirectCall88 89CHECK: 			Address:  210313690CHECK-NEXT:  [Probe]: FUNC: bar Index: 1  Type: Block91CHECK-NEXT:  [Probe]: FUNC: bar Index: 4  Type: Block92CHECK-NEXT: Address:  210316893CHECK-NEXT:  [Probe]: FUNC: foo Index: 1  Type: Block94CHECK-NEXT:  [Probe]: FUNC: foo Index: 2  Type: Block95CHECK-NEXT: Address:  210318196CHECK-NEXT:  [Probe]: FUNC: foo Index: 5  Type: Block97CHECK-NEXT:  [Probe]: FUNC: foo Index: 6  Type: Block98CHECK-NEXT:  [Probe]: FUNC: foo Index: 2  Type: Block99CHECK-NEXT: Address:  2103195100CHECK-NEXT:  [Probe]: FUNC: foo Index: 3  Type: Block101CHECK-NEXT: Address:  2103226102CHECK-NEXT:  [Probe]: FUNC: foo Index: 4  Type: Block103CHECK-NEXT:  [Probe]: FUNC: foo Index: 6  Type: Block104CHECK-NEXT:  [Probe]: FUNC: foo Index: 2  Type: Block105CHECK-NEXT: Address:  2103228106CHECK-NEXT:  [Probe]: FUNC: foo Index: 8  Type: DirectCall107CHECK-NEXT: Address:  2103246108CHECK-NEXT:  [Probe]: FUNC: foo Index: 7  Type: Block109CHECK-NEXT: Address:  2103253110CHECK-NEXT:  [Probe]: FUNC: foo Index: 9  Type: DirectCall111CHECK-NEXT: Address:  2103280112CHECK-NEXT:  [Probe]: FUNC: main Index: 1  Type: Block113CHECK-NEXT: Address:  2103284114CHECK-NEXT:  [Probe]: FUNC: main Index: 2  Type: DirectCall115