summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-profdata
diff options
context:
space:
mode:
authorRong Xu <xur@google.com>2019-01-08 22:41:48 +0000
committerRong Xu <xur@google.com>2019-01-08 22:41:48 +0000
commit52aa224affbf2559387e59d71ad809b4bd726e7a (patch)
treeff78b56173980a26d12ebb6ad959517cbb3b529d /llvm/test/tools/llvm-profdata
parentd023dd60e944886a9d5a0b1dbf46f67d43293af8 (diff)
downloadbcm5719-llvm-52aa224affbf2559387e59d71ad809b4bd726e7a.tar.gz
bcm5719-llvm-52aa224affbf2559387e59d71ad809b4bd726e7a.zip
[llvm-profdata] add value-cutoff functionality in show command
This patch improves llvm-profdata show command: (1) add -value-cutoff=<N> option: Show only those functions whose max count values are greater or equal to N. (2) add -list-below-cutoff option: Only output names of functions whose max count value are below the cutoff. (3) formats value-profile counts and prints out percentage. Differential Revision: https://reviews.llvm.org/D56342 llvm-svn: 350673
Diffstat (limited to 'llvm/test/tools/llvm-profdata')
-rw-r--r--llvm/test/tools/llvm-profdata/Inputs/cutoff.proftext21
-rw-r--r--llvm/test/tools/llvm-profdata/cutoff.test23
-rw-r--r--llvm/test/tools/llvm-profdata/value-prof.proftext6
3 files changed, 47 insertions, 3 deletions
diff --git a/llvm/test/tools/llvm-profdata/Inputs/cutoff.proftext b/llvm/test/tools/llvm-profdata/Inputs/cutoff.proftext
new file mode 100644
index 00000000000..1ce4843f54f
--- /dev/null
+++ b/llvm/test/tools/llvm-profdata/Inputs/cutoff.proftext
@@ -0,0 +1,21 @@
+# IR level Instrumentation Flag
+:ir
+bar
+10
+2
+0
+0
+
+main
+16650
+4
+1
+1000
+1000000
+499500
+
+foo
+10
+2
+999
+1
diff --git a/llvm/test/tools/llvm-profdata/cutoff.test b/llvm/test/tools/llvm-profdata/cutoff.test
new file mode 100644
index 00000000000..f04ea16f324
--- /dev/null
+++ b/llvm/test/tools/llvm-profdata/cutoff.test
@@ -0,0 +1,23 @@
+Basic tests for cutoff options in show command.
+
+RUN: llvm-profdata show -value-cutoff=1 %p/Inputs/cutoff.proftext | FileCheck %s -check-prefix=CUTOFF1 -check-prefix=CHECK
+RUN: llvm-profdata show -value-cutoff=1000 %p/Inputs/cutoff.proftext | FileCheck %s -check-prefix=CUTOFF1000 -check-prefix=CHECK
+RUN: llvm-profdata show -all-functions -value-cutoff=1 %p/Inputs/cutoff.proftext | FileCheck %s -check-prefix=CUTOFF1FUNC -check-prefix=CUTOFF1 -check-prefix=CHECK
+RUN: llvm-profdata show -all-functions -value-cutoff=1000 %p/Inputs/cutoff.proftext | FileCheck %s -check-prefix=CUTOFF1000FUNC -check-prefix=CUTOFF1000 -check-prefix=CHECK
+RUN: llvm-profdata show -value-cutoff=1 -list-below-cutoff %p/Inputs/cutoff.proftext | FileCheck %s -check-prefix=BELOW1 -check-prefix=CUTOFF1 -check-prefix=CHECK
+RUN: llvm-profdata show -value-cutoff=1000 -list-below-cutoff %p/Inputs/cutoff.proftext | FileCheck %s -check-prefix=BELOW1000 -check-prefix=CUTOFF1000 -check-prefix=CHECK
+CUTOFF1FUNC-NOT: bar
+CUTOFF1FUNC: Functions shown: 2
+CUTOFF1000FUNC-NOT: bar
+CUTOFF1000FUNC-NOT: foo
+CUTOFF1000FUNC: Functions shown: 1
+BELOW1: The list of functions with the maximum counter less than 1:
+BELOW1: bar: (Max = 0 Sum = 0)
+BELOW1000:The list of functions with the maximum counter less than 1000:
+BELOW1000: bar: (Max = 0 Sum = 0)
+BELOW1000: foo: (Max = 999 Sum = 1000)
+CHECK: Total functions: 3
+CUTOFF1: Number of functions with maximum count (< 1): 1
+CUTOFF1: Number of functions with maximum count (>= 1): 2
+CUTOFF1000: Number of functions with maximum count (< 1000): 2
+CUTOFF1000: Number of functions with maximum count (>= 1000): 1
diff --git a/llvm/test/tools/llvm-profdata/value-prof.proftext b/llvm/test/tools/llvm-profdata/value-prof.proftext
index 31a7698895d..a854a51afa6 100644
--- a/llvm/test/tools/llvm-profdata/value-prof.proftext
+++ b/llvm/test/tools/llvm-profdata/value-prof.proftext
@@ -47,9 +47,9 @@ foo2:20000
#ICTXT: Indirect Call Site Count: 3
#ICTXT-NEXT: Indirect Target Results:
-#ICTXT-NEXT: [ 1, foo, 100 ]
-#ICTXT-NEXT: [ 1, foo2, 1000 ]
-#ICTXT-NEXT: [ 2, foo2, 20000 ]
+#ICTXT-NEXT: [ 1, foo, 100 ] (9.09%)
+#ICTXT-NEXT: [ 1, foo2, 1000 ] (90.91%)
+#ICTXT-NEXT: [ 2, foo2, 20000 ] (100.00%)
#IC: Indirect Call Site Count: 3
#IC-NEXT: Indirect Target Results:
OpenPOWER on IntegriCloud