forked from OSchip/llvm-project
[llvm-profgen] Turn on preinliner by default
preinliner has been tuned on large server workloads and it's not ready to be turned on by default. this change also updates the thresholds based on tuning. Differential Revision: https://reviews.llvm.org/D115770
This commit is contained in:
parent
4706a297fb
commit
f6f0409f6f
|
@ -1,5 +1,5 @@
|
|||
; test for dwarf-based cs profile
|
||||
; RUN: llvm-profgen --format=extbinary --perfscript=%S/Inputs/recursion-compression-noprobe.perfscript --binary=%S/Inputs/recursion-compression-noprobe.perfbin --output=%t1 --profile-summary-hot-count=0
|
||||
; RUN: llvm-profgen --format=extbinary --perfscript=%S/Inputs/recursion-compression-noprobe.perfscript --binary=%S/Inputs/recursion-compression-noprobe.perfbin --output=%t1 --profile-summary-hot-count=0 --csspgo-preinliner=0
|
||||
; RUN: llvm-profdata merge --sample --text --output=%t2 %t1
|
||||
; RUN: FileCheck %S/recursion-compression-noprobe.test --input-file %t2
|
||||
; RUN: llvm-profdata merge --sample --extbinary --output=%t3 %t2 && llvm-profdata merge --sample --text --output=%t4 %t3
|
||||
|
@ -7,7 +7,7 @@
|
|||
|
||||
|
||||
; test for probe-based cs profile
|
||||
; RUN: llvm-profgen --format=extbinary --perfscript=%S/Inputs/recursion-compression-pseudoprobe.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t5 --profile-summary-hot-count=0
|
||||
; RUN: llvm-profgen --format=extbinary --perfscript=%S/Inputs/recursion-compression-pseudoprobe.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t5 --profile-summary-hot-count=0 --csspgo-preinliner=0
|
||||
; RUN: llvm-profdata merge --sample --text --output=%t6 %t5
|
||||
; RUN: FileCheck %S/recursion-compression-pseudoprobe.test --input-file %t6
|
||||
; RUN: llvm-profdata merge --sample --extbinary --output=%t7 %t6 && llvm-profdata merge --sample --text --output=%t8 %t7
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
;; The test fails on Windows. Fix it before removing the following requirement.
|
||||
; REQUIRES: x86_64-linux
|
||||
; 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
|
||||
; 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
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-UNWINDER
|
||||
; 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
|
||||
; 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
|
||||
; RUN: FileCheck %s --input-file %t
|
||||
|
||||
; CHECK:[main:1 @ foo]:88:0
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
; Test default llvm-profgen with preinline off
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --csspgo-preinliner=0 --output=%t
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-DEFAULT
|
||||
|
||||
; Test llvm-profgen with preinliner on will merge not inlinable profile into base profile.
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t --csspgo-preinliner=1
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --csspgo-preinliner=1 --sample-profile-hot-inline-threshold=3000 --sample-profile-cold-inline-threshold=45 --output=%t
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-PREINL
|
||||
|
||||
; Test preinliner threshold that prevents all possible inlining and merges everything into base profile.
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t --csspgo-preinliner=1 -sample-profile-cold-inline-threshold=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --csspgo-preinliner=1 --sample-profile-hot-inline-threshold=3000 --sample-profile-cold-inline-threshold=0 --output=%t
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-NO-PREINL
|
||||
|
||||
; Test cold profile trimming. Only base profiles should be dropped.
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t --csspgo-preinliner=1 --trim-cold-profile=1 --profile-summary-hot-count=400
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --csspgo-preinliner=1 --sample-profile-hot-inline-threshold=3000 --sample-profile-cold-inline-threshold=45 --output=%t --trim-cold-profile=1 --profile-summary-hot-count=400
|
||||
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-TRIM
|
||||
|
||||
; Test llvm-profgen with preinliner on will merge not inlinable profile into base profile.
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t --csspgo-preinliner=1 --gen-cs-nested-profile=1
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --csspgo-preinliner=1 --sample-profile-hot-inline-threshold=3000 --sample-profile-cold-inline-threshold=45 --output=%t --gen-cs-nested-profile=1
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-PREINL-NEST
|
||||
|
||||
; CHECK-DEFAULT: [main:1 @ foo]:309:0
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
; Test unique linkage name decoding and canonicalization from dwarf debug info
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/unique-linkage-name-dwarf.perfscript --binary=%S/Inputs/unique-linkage-name-dwarf.perfbin --output=%t --profile-summary-cold-count=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/unique-linkage-name-dwarf.perfscript --binary=%S/Inputs/unique-linkage-name-dwarf.perfbin --output=%t --profile-summary-cold-count=0 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-DWARF-FNAME
|
||||
|
||||
; CHECK-DWARF-FNAME:[main:1 @ foo]:309:0
|
||||
|
@ -10,7 +10,7 @@
|
|||
|
||||
|
||||
; Test unique linkage name decoding and canonicalization from pseudo probe info
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/unique-linkage-name-probe.perfscript --binary=%S/Inputs/unique-linkage-name-probe.perfbin --output=%t --profile-summary-cold-count=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/unique-linkage-name-probe.perfscript --binary=%S/Inputs/unique-linkage-name-probe.perfbin --output=%t --profile-summary-cold-count=0 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-PROBE-FNAME
|
||||
|
||||
; CHECK-PROBE-FNAME:[main:2 @ foo]:75:0
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t --skip-symbolization --profile-summary-cold-count=0
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-UNWINDER
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t --profile-summary-cold-count=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t --profile-summary-cold-count=0 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t --profile-summary-cold-count=0 --ignore-stack-samples
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t --profile-summary-cold-count=0 --ignore-stack-samples --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-STRIP-CTX
|
||||
|
||||
; RUN: llvm-profgen --format=extbinary --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t --profile-summary-cold-count=0 --populate-profile-symbol-list=1
|
||||
; RUN: llvm-profgen --format=extbinary --perfscript=%S/Inputs/inline-cs-noprobe.perfscript --binary=%S/Inputs/inline-cs-noprobe.perfbin --output=%t --profile-summary-cold-count=0 --populate-profile-symbol-list=1 --csspgo-preinliner=0
|
||||
; RUN: llvm-profdata show -show-prof-sym-list -sample %t | FileCheck %s --check-prefix=CHECK-SYM-LIST
|
||||
|
||||
; CHECK-SYM-LIST: Dump profile symbol list
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-UNWINDER-OFFSET
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-pseudoprobe.perfscript --binary=%S/Inputs/inline-cs-pseudoprobe.perfbin --output=%t --skip-symbolization --profile-summary-cold-count=0 --use-offset=1 --use-first-loadable-segment-as-base=1
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-UNWINDER-OFFSET2
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-pseudoprobe.perfscript --binary=%S/Inputs/inline-cs-pseudoprobe.perfbin --output=%t --profile-summary-cold-count=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/inline-cs-pseudoprobe.perfscript --binary=%S/Inputs/inline-cs-pseudoprobe.perfbin --output=%t --profile-summary-cold-count=0 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t
|
||||
|
||||
; CHECK: [main:2 @ foo]:74:0
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
; Used the data from recursion-compression.test, refer it for the unmerged output
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t1 --compress-recursion=-1 --profile-summary-hot-count=8
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t1 --compress-recursion=-1 --profile-summary-hot-count=8 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t1
|
||||
|
||||
; Test --trim-cold-profile=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t2 --compress-recursion=-1 --profile-summary-hot-count=100 --trim-cold-profile=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t2 --compress-recursion=-1 --profile-summary-hot-count=100 --trim-cold-profile=0 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t2 --check-prefix=CHECK-KEEP-COLD
|
||||
|
||||
; Test --csprof-merge-cold-context=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t3 --compress-recursion=-1 --profile-summary-hot-count=10 --csprof-merge-cold-context=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t3 --compress-recursion=-1 --profile-summary-hot-count=10 --csprof-merge-cold-context=0 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t3 --check-prefix=CHECK-UNMERGED
|
||||
|
||||
; Test --csprof-frame-depth-for-cold-context
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t2 --compress-recursion=-1 --profile-summary-hot-count=100 --trim-cold-profile=0 --csprof-max-cold-context-depth=2
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t2 --compress-recursion=-1 --profile-summary-hot-count=100 --trim-cold-profile=0 --csprof-max-cold-context-depth=2 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t2 --check-prefix=CHECK-COLD-CONTEXT-LENGTH
|
||||
|
||||
; CHECK: [fa]:14:4
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: llvm-profgen --perfscript=%S/Inputs/multi-load-segs.perfscript --binary=%S/Inputs/multi-load-segs.perfbin --output=%t --format=text
|
||||
; RUN: llvm-profgen --perfscript=%S/Inputs/multi-load-segs.perfscript --binary=%S/Inputs/multi-load-segs.perfbin --output=%t --format=text --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t
|
||||
|
||||
;; %S/Inputs/multi-load-segs.perfbin is an ELF image with two executable load segments.
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
; REQUIRES: x86_64-linux
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-noprobe.perfscript --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t --skip-symbolization --profile-summary-cold-count=0
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-UNWINDER
|
||||
; RUN: llvm-profgen --format=text --unsymbolized-profile=%t --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t1 --profile-summary-cold-count=0
|
||||
; RUN: llvm-profgen --format=text --unsymbolized-profile=%t --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t1 --profile-summary-cold-count=0 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t1
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-noprobe.perfscript --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t --profile-summary-cold-count=0 --ignore-stack-samples
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-noprobe.perfscript --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t --profile-summary-cold-count=0 --ignore-stack-samples --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-STRIP-CTX
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-noprobe.aggperfscript --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t --skip-symbolization --profile-summary-cold-count=0
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-AGG-UNWINDER
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-noprobe.aggperfscript --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t --profile-summary-cold-count=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-noprobe.aggperfscript --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t --profile-summary-cold-count=0 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-AGG
|
||||
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-noprobe.perfscript --binary=%S/Inputs/noinline-cs-noprobe.perfbin --output=%t1 --profile-summary-cold-count=0
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-pseudoprobe.perfscript --binary=%S/Inputs/noinline-cs-pseudoprobe.perfbin --output=%t --skip-symbolization --profile-summary-cold-count=0
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-UNWINDER
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-pseudoprobe.perfscript --binary=%S/Inputs/noinline-cs-pseudoprobe.perfbin --output=%t --profile-summary-cold-count=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-pseudoprobe.perfscript --binary=%S/Inputs/noinline-cs-pseudoprobe.perfbin --output=%t --profile-summary-cold-count=0 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-pseudoprobe.aggperfscript --binary=%S/Inputs/noinline-cs-pseudoprobe.perfbin --output=%t --skip-symbolization --profile-summary-cold-count=0
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-UNWINDER
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-pseudoprobe.aggperfscript --binary=%S/Inputs/noinline-cs-pseudoprobe.perfbin --output=%t --profile-summary-cold-count=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/noinline-cs-pseudoprobe.aggperfscript --binary=%S/Inputs/noinline-cs-pseudoprobe.perfbin --output=%t --profile-summary-cold-count=0 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t
|
||||
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
; Firstly test uncompression(--compress-recursion=0)
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-noprobe.perfscript --binary=%S/Inputs/recursion-compression-noprobe.perfbin --output=%t --compress-recursion=0 --profile-summary-hot-count=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-noprobe.perfscript --binary=%S/Inputs/recursion-compression-noprobe.perfbin --output=%t --compress-recursion=0 --profile-summary-hot-count=0 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t -check-prefix=CHECK-UNCOMPRESS
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-noprobe.perfscript --binary=%S/Inputs/recursion-compression-noprobe.perfbin --output=%t --profile-summary-hot-count=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-noprobe.perfscript --binary=%S/Inputs/recursion-compression-noprobe.perfbin --output=%t --profile-summary-hot-count=0 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-noprobe.perfscript --binary=%S/Inputs/recursion-compression-noprobe.perfbin --output=%t --compress-recursion=0 --profile-summary-hot-count=0 --csprof-max-context-depth=2
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-noprobe.perfscript --binary=%S/Inputs/recursion-compression-noprobe.perfbin --output=%t --compress-recursion=0 --profile-summary-hot-count=0 --csprof-max-context-depth=2 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t -check-prefix=CHECK-MAX-CTX-DEPTH
|
||||
|
||||
; CHECK-UNCOMPRESS:[main:1 @ foo:3 @ fa:2 @ fb]:48:0
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
; Firstly test uncompression(--compress-recursion=0)
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t --compress-recursion=0 --profile-summary-hot-count=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t --compress-recursion=0 --profile-summary-hot-count=0 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t -check-prefix=CHECK-UNCOMPRESS
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t --skip-symbolization --profile-summary-hot-count=0
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-UNWINDER
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t --profile-summary-hot-count=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t --profile-summary-hot-count=0 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe-nommap.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t --skip-symbolization --profile-summary-hot-count=0
|
||||
; RUN: FileCheck %s --input-file %t --check-prefix=CHECK-UNWINDER
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe-nommap.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t --profile-summary-hot-count=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe-nommap.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t --profile-summary-hot-count=0 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t --compress-recursion=0 --profile-summary-hot-count=0 --csprof-max-context-depth=0
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/recursion-compression-pseudoprobe.perfscript --binary=%S/Inputs/recursion-compression-pseudoprobe.perfbin --output=%t --compress-recursion=0 --profile-summary-hot-count=0 --csprof-max-context-depth=0 --csspgo-preinliner=0
|
||||
; RUN: FileCheck %s --input-file %t -check-prefix=CHECK-MAX-CTX-DEPTH
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/truncated-pseudoprobe.perfscript --binary=%S/Inputs/truncated-pseudoprobe.perfbin --output=%t
|
||||
; RUN: llvm-profgen --format=text --perfscript=%S/Inputs/truncated-pseudoprobe.perfscript --binary=%S/Inputs/truncated-pseudoprobe.perfbin --csspgo-preinliner=0 --output=%t
|
||||
; RUN: FileCheck %s --input-file %t
|
||||
|
||||
; CHECK: [foo]:75:0
|
||||
|
|
|
@ -41,7 +41,7 @@ extern cl::opt<int> ProfileInlineLimitMax;
|
|||
extern cl::opt<bool> SortProfiledSCC;
|
||||
|
||||
cl::opt<bool> EnableCSPreInliner(
|
||||
"csspgo-preinliner", cl::Hidden, cl::init(false),
|
||||
"csspgo-preinliner", cl::Hidden, cl::init(true),
|
||||
cl::desc("Run a global pre-inliner to merge context profile based on "
|
||||
"estimated global top-down inline decisions"));
|
||||
|
||||
|
@ -61,7 +61,14 @@ CSPreInliner::CSPreInliner(SampleProfileMap &Profiles, ProfiledBinary &Binary,
|
|||
// ContextTracker.getFuncNameFor to work, if `Profiles` can have md5 codes
|
||||
// as their profile context.
|
||||
ContextTracker(Profiles, nullptr), ProfileMap(Profiles), Binary(Binary),
|
||||
HotCountThreshold(HotThreshold), ColdCountThreshold(ColdThreshold) {}
|
||||
HotCountThreshold(HotThreshold), ColdCountThreshold(ColdThreshold) {
|
||||
// Set default preinliner hot/cold call site threshold tuned with CSSPGO.
|
||||
// for good performance with reasonable profile size.
|
||||
if (!SampleHotCallSiteThreshold.getNumOccurrences())
|
||||
SampleHotCallSiteThreshold = 1500;
|
||||
if (!SampleColdCallSiteThreshold.getNumOccurrences())
|
||||
SampleColdCallSiteThreshold = 0;
|
||||
}
|
||||
|
||||
std::vector<StringRef> CSPreInliner::buildTopDownOrder() {
|
||||
std::vector<StringRef> Order;
|
||||
|
|
Loading…
Reference in New Issue