[compiler-rt] r320999 - [PGO] Test case changes for D41059
Xinliang David Li via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 18 09:56:42 PST 2017
Author: davidxl
Date: Mon Dec 18 09:56:42 2017
New Revision: 320999
URL: http://llvm.org/viewvc/llvm-project?rev=320999&view=rev
Log:
[PGO] Test case changes for D41059
Differential Revision: http://reviews.llvm.org/D41059
Added:
compiler-rt/trunk/test/profile/runtime_infinite.c
Modified:
compiler-rt/trunk/test/profile/Linux/counter_promo_for.c
compiler-rt/trunk/test/profile/infinite_loop.c
Modified: compiler-rt/trunk/test/profile/Linux/counter_promo_for.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Linux/counter_promo_for.c?rev=320999&r1=320998&r2=320999&view=diff
==============================================================================
--- compiler-rt/trunk/test/profile/Linux/counter_promo_for.c (original)
+++ compiler-rt/trunk/test/profile/Linux/counter_promo_for.c Mon Dec 18 09:56:42 2017
@@ -19,18 +19,18 @@ __attribute__((noinline)) void bar(int i
__attribute__((noinline)) void foo(int n, int N) {
// PROMO-LABEL: @foo
+// PROMO: load{{.*}}@__profc_foo{{.*}} 3){{.*}}
+// PROMO-NEXT: add
+// PROMO-NEXT: store{{.*}}@__profc_foo{{.*}} 3){{.*}}
// PROMO: load{{.*}}@__profc_foo{{.*}} 0){{.*}}
// PROMO-NEXT: add
// PROMO-NEXT: store{{.*}}@__profc_foo{{.*}} 0){{.*}}
// PROMO-NEXT: load{{.*}}@__profc_foo{{.*}} 1){{.*}}
// PROMO-NEXT: add
// PROMO-NEXT: store{{.*}}@__profc_foo{{.*}} 1){{.*}}
-// PROMO-NEXT: load{{.*}}@__profc_foo{{.*}} 2){{.*}}
+// PROMO: load{{.*}}@__profc_foo{{.*}} 2){{.*}}
// PROMO-NEXT: add
// PROMO-NEXT: store{{.*}}@__profc_foo{{.*}} 2){{.*}}
-// PROMO: load{{.*}}@__profc_foo{{.*}} 3){{.*}}
-// PROMO-NEXT: add
-// PROMO-NEXT: store{{.*}}@__profc_foo{{.*}} 3){{.*}}
//
// NOPROMO-LABEL: @foo
// NOPROMO: load{{.*}}@__profc_foo{{.*}} 0){{.*}}
Modified: compiler-rt/trunk/test/profile/infinite_loop.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/infinite_loop.c?rev=320999&r1=320998&r2=320999&view=diff
==============================================================================
--- compiler-rt/trunk/test/profile/infinite_loop.c (original)
+++ compiler-rt/trunk/test/profile/infinite_loop.c Mon Dec 18 09:56:42 2017
@@ -23,8 +23,8 @@ int main()
// CHECK: Counters:
// CHECK-NEXT: main:
// CHECK-NEXT: Hash: {{.*}}
-// CHECK-NEXT: Counters: 1
-// CHECK-NEXT: Block counts: [1000]
+// CHECK-NEXT: Counters: 2
+// CHECK-NEXT: Block counts: [1000, 1]
Added: compiler-rt/trunk/test/profile/runtime_infinite.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/runtime_infinite.c?rev=320999&view=auto
==============================================================================
--- compiler-rt/trunk/test/profile/runtime_infinite.c (added)
+++ compiler-rt/trunk/test/profile/runtime_infinite.c Mon Dec 18 09:56:42 2017
@@ -0,0 +1,36 @@
+// The waiting loop never exits via the normal
+// path before the profile is dumped and the
+// program is terminated. This tests checks
+// that the entry of main is properly instrumented
+// and has non-zero count.
+
+// RUN: %clang_pgogen -mllvm -do-counter-promotion=false -O2 -o %t %s
+// RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t
+// RUN: llvm-profdata show -function main -counts %t.profraw| FileCheck %s
+void exit(int);
+
+int __llvm_profile_dump(void);
+void __llvm_profile_reset_counters(void);
+
+int g = 0;
+__attribute__((noinline)) void doSth() {
+ g++;
+
+ if (g > 10000) {
+ // dump profile and exit;
+ __llvm_profile_dump();
+ exit(0);
+ }
+}
+int errorcode = 0;
+int noerror() { return (errorcode == 0); }
+
+int main(int argc, const char *argv[]) {
+ // waiting_loop
+ while (noerror()) {
+ doSth();
+ }
+}
+
+// CHECK-LABEL: main
+// CHECK: [10001, 1]
More information about the llvm-commits
mailing list