diff options
author | Xinliang David Li <davidxl@google.com> | 2016-07-30 20:12:00 +0000 |
---|---|---|
committer | Xinliang David Li <davidxl@google.com> | 2016-07-30 20:12:00 +0000 |
commit | 637bbbc2d7b0d47458ab10763865a119fea163a7 (patch) | |
tree | adbc937d25718651767db0bda3228b9c14a57fee /test/profile | |
parent | ceb8b233f66230ccdb30f7af66b66202d5deaf89 (diff) |
[Profile] Add a new test case
The end-end test checks that cs-profile counter update
is obtained as expected.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@277276 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/profile')
-rw-r--r-- | test/profile/Linux/instrprof-cs.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/profile/Linux/instrprof-cs.c b/test/profile/Linux/instrprof-cs.c new file mode 100644 index 000000000..3be4359d9 --- /dev/null +++ b/test/profile/Linux/instrprof-cs.c @@ -0,0 +1,35 @@ +// RUN: rm -fr %t.prof +// RUN: %clang_pgogen=%t.prof/ -o %t.gen.cs -O2 %s +// RUN: %t.gen.cs +// RUN: llvm-profdata merge -o %t.cs.profdata %t.prof/ +// Check context sensitive profile +// RUN: %clang_profuse=%t.cs.profdata -O2 -emit-llvm -S %s -o - | FileCheck %s --check-prefix=CS +// +// RUN: %clang_profgen=%t.profraw -o %t.gen.cis -O2 %s +// RUN: %t.gen.cis +// RUN: llvm-profdata merge -o %t.cis.profdata %t.profraw +// Check context insenstive profile +// RUN: %clang_profuse=%t.cis.profdata -O2 -emit-llvm -S %s -o - | FileCheck %s --check-prefix=CIS +int g1 = 1; +int g2 = 2; +static void toggle(int t) { + if (t & 1) + g1 *= t; + else + g2 *= t; +} + +int main() { + int i; + // CS: br i1 %{{.*}}, label %{{.*}}, label %{{.*}}, !prof ![[PD1:[0-9]+]] + // CIS: br i1 %{{.*}}, label %{{.*}}, label %{{.*}}, !prof ![[PD:[0-9]+]] + toggle(g1); + // CS: br i1 %{{.*}}, label %{{.*}}, label %{{.*}}, !prof ![[PD2:[0-9]+]] + // CIS: br i1 %{{.*}}, label %{{.*}}, label %{{.*}}, !prof ![[PD:[0-9]+]] + toggle(g2); + return 0; +} + +// CS: ![[PD1]] = !{!"branch_weights", i32 0, i32 1} +// CS: ![[PD2]] = !{!"branch_weights", i32 1, i32 0} +// CIS: ![[PD]] = !{!"branch_weights", i32 2, i32 2} |