[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