summaryrefslogtreecommitdiffstats
path: root/clang/test/Profile
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/Profile')
-rw-r--r--clang/test/Profile/Inputs/c-attributes.profdata27
-rw-r--r--clang/test/Profile/Inputs/c-general.profdata10
-rw-r--r--clang/test/Profile/Inputs/c-outdated-data.profdata8
-rw-r--r--clang/test/Profile/Inputs/cxx-class.profdata25
-rw-r--r--clang/test/Profile/Inputs/objc-general.profdata1
-rw-r--r--clang/test/Profile/c-general.c17
-rw-r--r--clang/test/Profile/c-outdated-data.c24
-rw-r--r--clang/test/Profile/cxx-class.cpp2
8 files changed, 56 insertions, 58 deletions
diff --git a/clang/test/Profile/Inputs/c-attributes.profdata b/clang/test/Profile/Inputs/c-attributes.profdata
index 0419b3b3bef..38decbd5568 100644
--- a/clang/test/Profile/Inputs/c-attributes.profdata
+++ b/clang/test/Profile/Inputs/c-attributes.profdata
@@ -1,39 +1,24 @@
-hot_100_percent 4
+hot_100_percent 2
100000
4999950000
-0
-0
-hot_40_percent 4
+hot_40_percent 2
40000
799980000
-0
-0
-normal_func 4
+normal_func 2
20000
199990000
-0
-0
-cold_func 4
+cold_func 2
500
124750
-0
-0
-main 13
+main 6
1
-100000
-0
0
+100000
40000
-0
-0
20000
-0
-0
500
-0
-0
diff --git a/clang/test/Profile/Inputs/c-general.profdata b/clang/test/Profile/Inputs/c-general.profdata
index e87f78e6b56..083b8fe55b4 100644
--- a/clang/test/Profile/Inputs/c-general.profdata
+++ b/clang/test/Profile/Inputs/c-general.profdata
@@ -92,9 +92,6 @@ big_switch 17
2
2
-issue_with_one_counter 1
-0
-
boolean_operators 8
1
100
@@ -122,13 +119,6 @@ do_fallthrough 4
2
8
-no_usable_data 5
-1
-1
-1
-1
-1
-
main 1
1
diff --git a/clang/test/Profile/Inputs/c-outdated-data.profdata b/clang/test/Profile/Inputs/c-outdated-data.profdata
new file mode 100644
index 00000000000..e1c51a6975d
--- /dev/null
+++ b/clang/test/Profile/Inputs/c-outdated-data.profdata
@@ -0,0 +1,8 @@
+no_usable_data 3
+1
+0
+0
+
+main 1
+1
+
diff --git a/clang/test/Profile/Inputs/cxx-class.profdata b/clang/test/Profile/Inputs/cxx-class.profdata
index 6605eb446c7..983ab551165 100644
--- a/clang/test/Profile/Inputs/cxx-class.profdata
+++ b/clang/test/Profile/Inputs/cxx-class.profdata
@@ -1,20 +1,27 @@
-_ZN6SimpleC2Ei 2
+_Z14simple_wrapperv 2
+1
100
-99
-_ZN6Simple6methodEv 2
-100
-99
+main 1
+1
+
+_ZN6SimpleD1Ev 2
+0
+0
_ZN6SimpleD2Ev 2
100
99
-_ZN14simple_wrapperEv 4
-1
+_ZN6Simple6methodEv 2
100
+99
+
+_ZN6SimpleC1Ei 2
0
0
-main 1
-1
+_ZN6SimpleC2Ei 2
+100
+99
+
diff --git a/clang/test/Profile/Inputs/objc-general.profdata b/clang/test/Profile/Inputs/objc-general.profdata
index da421583b81..06c9832b3c5 100644
--- a/clang/test/Profile/Inputs/objc-general.profdata
+++ b/clang/test/Profile/Inputs/objc-general.profdata
@@ -8,3 +8,4 @@ objc-general.m:+[A foreach:] 2
main 1
1
+
diff --git a/clang/test/Profile/c-general.c b/clang/test/Profile/c-general.c
index 43ebf511827..7945d8dfc80 100644
--- a/clang/test/Profile/c-general.c
+++ b/clang/test/Profile/c-general.c
@@ -11,7 +11,6 @@
// PGOGEN: @[[BSC:__llvm_pgo_ctr[0-9]*]] = private global [17 x i64] zeroinitializer
// PGOGEN: @[[BOC:__llvm_pgo_ctr[0-9]*]] = private global [8 x i64] zeroinitializer
// PGOGEN: @[[BLC:__llvm_pgo_ctr[0-9]*]] = private global [9 x i64] zeroinitializer
-// PGOGEN: @[[NOC:__llvm_pgo_ctr[0-9]*]] = private global [2 x i64] zeroinitializer
// PGOGEN: @[[MAC:__llvm_pgo_ctr[0-9]*]] = private global [1 x i64] zeroinitializer
// PGOGEN: @[[STC:__llvm_pgo_ctr[0-9]*]] = private global [2 x i64] zeroinitializer
@@ -426,21 +425,6 @@ void do_fallthrough() {
}
}
-// PGOGEN-LABEL: @no_usable_data()
-// PGOUSE-LABEL: @no_usable_data()
-// PGOGEN: store {{.*}} @[[NOC]], i64 0, i64 0
-void no_usable_data() {
- // The input data for PGOUSE is deliberately invalid for this function, so
- // that we can test that we reject and ignore it properly.
- int i = 0;
-
- // PGOGEN: store {{.*}} @[[NOC]], i64 0, i64 1
- if (i) {}
-
- // PGOGEN-NOT: store {{.*}} @[[NOC]],
- // PGOUSE-NOT: br {{.*}} !prof ![0-9]+
-}
-
// PGOGEN-LABEL: @static_func()
// PGOUSE-LABEL: @static_func()
// PGOGEN: store {{.*}} @[[STC]], i64 0, i64 0
@@ -531,7 +515,6 @@ int main(int argc, const char *argv[]) {
boolean_operators();
boolop_loops();
do_fallthrough();
- no_usable_data();
static_func();
return 0;
}
diff --git a/clang/test/Profile/c-outdated-data.c b/clang/test/Profile/c-outdated-data.c
new file mode 100644
index 00000000000..fe5a5c75cca
--- /dev/null
+++ b/clang/test/Profile/c-outdated-data.c
@@ -0,0 +1,24 @@
+// Test that outdated data is ignored.
+
+// RUN: %clang_cc1 -triple x86_64-apple-macosx10.9 -main-file-name c-outdated-data.c %s -o - -emit-llvm -fprofile-instr-use=%S/Inputs/c-outdated-data.profdata | FileCheck -check-prefix=PGOUSE %s
+
+// TODO: We should have a warning or a remark that tells us the profile data was
+// discarded, rather than just checking that we fail to add metadata.
+
+// PGOUSE-LABEL: @no_usable_data()
+void no_usable_data() {
+ int i = 0;
+
+ if (i) {}
+
+#ifdef GENERATE_OUTDATED_DATA
+ if (i) {}
+#endif
+
+ // PGOUSE-NOT: br {{.*}} !prof ![0-9]+
+}
+
+int main(int argc, const char *argv[]) {
+ no_usable_data();
+ return 0;
+}
diff --git a/clang/test/Profile/cxx-class.cpp b/clang/test/Profile/cxx-class.cpp
index 5934a0adb7d..7432bc3ccee 100644
--- a/clang/test/Profile/cxx-class.cpp
+++ b/clang/test/Profile/cxx-class.cpp
@@ -69,7 +69,7 @@ void simple_wrapper() {
// WRPUSE-NOT: br {{.*}} !prof ![0-9]+
// WRPUSE: ret
}
-// WRPUSE: ![[SW1]] = metadata !{metadata !"branch_weights", i32 100, i32 2}
+// WRPUSE: ![[SW1]] = metadata !{metadata !"branch_weights", i32 101, i32 2}
int main(int argc, const char *argv[]) {
simple_wrapper();
OpenPOWER on IntegriCloud