diff options
author | Justin Bogner <mail@justinbogner.com> | 2014-03-18 21:58:06 +0000 |
---|---|---|
committer | Justin Bogner <mail@justinbogner.com> | 2014-03-18 21:58:06 +0000 |
commit | b4416f58d54bec73aeefa3122fb195ab1dd73517 (patch) | |
tree | d6fac4cc9299a96b332f6e2ea3f14d462661f956 /clang/test | |
parent | bc9c856161118a6be1b956221ed52bae27286eed (diff) | |
download | bcm5719-llvm-b4416f58d54bec73aeefa3122fb195ab1dd73517.tar.gz bcm5719-llvm-b4416f58d54bec73aeefa3122fb195ab1dd73517.zip |
CodeGen: Include a function hash in instrumentation based profiling
The hash itself is still the number of counters, which isn't all that
useful, but this separates the API changes from the actual
implementation of the hash and will make it easier to transition to
the ProfileData library once it's implemented.
llvm-svn: 204186
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Profile/Inputs/c-attributes.profdata | 20 | ||||
-rw-r--r-- | clang/test/Profile/Inputs/c-counter-overflows.profdata | 4 | ||||
-rw-r--r-- | clang/test/Profile/Inputs/c-general.profdata | 44 | ||||
-rw-r--r-- | clang/test/Profile/Inputs/c-outdated-data.profdata | 8 | ||||
-rw-r--r-- | clang/test/Profile/Inputs/cxx-class.profdata | 28 | ||||
-rw-r--r-- | clang/test/Profile/Inputs/cxx-throws.profdata | 8 | ||||
-rw-r--r-- | clang/test/Profile/Inputs/objc-general.profdata | 12 | ||||
-rw-r--r-- | clang/test/Profile/c-linkage.c | 10 | ||||
-rw-r--r-- | clang/test/Profile/cxx-linkage.cpp | 10 |
9 files changed, 103 insertions, 41 deletions
diff --git a/clang/test/Profile/Inputs/c-attributes.profdata b/clang/test/Profile/Inputs/c-attributes.profdata index 38decbd5568..97e682480dc 100644 --- a/clang/test/Profile/Inputs/c-attributes.profdata +++ b/clang/test/Profile/Inputs/c-attributes.profdata @@ -1,20 +1,30 @@ -hot_100_percent 2 +hot_100_percent +2 +2 100000 4999950000 -hot_40_percent 2 +hot_40_percent +2 +2 40000 799980000 -normal_func 2 +normal_func +2 +2 20000 199990000 -cold_func 2 +cold_func +2 +2 500 124750 -main 6 +main +6 +6 1 0 100000 diff --git a/clang/test/Profile/Inputs/c-counter-overflows.profdata b/clang/test/Profile/Inputs/c-counter-overflows.profdata index 377a08502d1..24863780ef8 100644 --- a/clang/test/Profile/Inputs/c-counter-overflows.profdata +++ b/clang/test/Profile/Inputs/c-counter-overflows.profdata @@ -1,4 +1,6 @@ -main 8 +main +8 +8 1 68719476720 64424509425 diff --git a/clang/test/Profile/Inputs/c-general.profdata b/clang/test/Profile/Inputs/c-general.profdata index 083b8fe55b4..a1d56104a21 100644 --- a/clang/test/Profile/Inputs/c-general.profdata +++ b/clang/test/Profile/Inputs/c-general.profdata @@ -1,10 +1,14 @@ -simple_loops 4 +simple_loops +4 +4 1 100 100 75 -conditionals 11 +conditionals +11 +11 1 100 50 @@ -17,7 +21,9 @@ conditionals 11 99 100 -early_exits 9 +early_exits +9 +9 1 0 51 @@ -28,7 +34,9 @@ early_exits 9 1 0 -jumps 22 +jumps +22 +22 1 1 0 @@ -52,7 +60,9 @@ jumps 22 10 9 -switches 19 +switches +19 +19 1 1 1 @@ -73,7 +83,9 @@ switches 19 1 0 -big_switch 17 +big_switch +17 +17 1 32 32 @@ -92,7 +104,9 @@ big_switch 17 2 2 -boolean_operators 8 +boolean_operators +8 +8 1 100 34 @@ -102,7 +116,9 @@ boolean_operators 8 33 50 -boolop_loops 9 +boolop_loops +9 +9 1 50 51 @@ -113,16 +129,22 @@ boolop_loops 9 50 26 -do_fallthrough 4 +do_fallthrough +4 +4 1 10 2 8 -main 1 +main +1 +1 1 -c-general.c:static_func 2 +c-general.c:static_func +2 +2 1 10 diff --git a/clang/test/Profile/Inputs/c-outdated-data.profdata b/clang/test/Profile/Inputs/c-outdated-data.profdata index e1c51a6975d..27015be82d0 100644 --- a/clang/test/Profile/Inputs/c-outdated-data.profdata +++ b/clang/test/Profile/Inputs/c-outdated-data.profdata @@ -1,8 +1,12 @@ -no_usable_data 3 +no_usable_data +3 +3 1 0 0 -main 1 +main +1 +1 1 diff --git a/clang/test/Profile/Inputs/cxx-class.profdata b/clang/test/Profile/Inputs/cxx-class.profdata index 983ab551165..756640d2f33 100644 --- a/clang/test/Profile/Inputs/cxx-class.profdata +++ b/clang/test/Profile/Inputs/cxx-class.profdata @@ -1,27 +1,41 @@ -_Z14simple_wrapperv 2 +_Z14simple_wrapperv +2 +2 1 100 -main 1 +main +1 +1 1 -_ZN6SimpleD1Ev 2 +_ZN6SimpleD1Ev +2 +2 0 0 -_ZN6SimpleD2Ev 2 +_ZN6SimpleD2Ev +2 +2 100 99 -_ZN6Simple6methodEv 2 +_ZN6Simple6methodEv +2 +2 100 99 -_ZN6SimpleC1Ei 2 +_ZN6SimpleC1Ei +2 +2 0 0 -_ZN6SimpleC2Ei 2 +_ZN6SimpleC2Ei +2 +2 100 99 diff --git a/clang/test/Profile/Inputs/cxx-throws.profdata b/clang/test/Profile/Inputs/cxx-throws.profdata index a49522f5584..01e6c3c286e 100644 --- a/clang/test/Profile/Inputs/cxx-throws.profdata +++ b/clang/test/Profile/Inputs/cxx-throws.profdata @@ -1,4 +1,6 @@ -_Z6throwsv 9 +_Z6throwsv +9 +9 1 100 100 @@ -9,6 +11,8 @@ _Z6throwsv 9 33 100 -main 1 +main +1 +1 1 diff --git a/clang/test/Profile/Inputs/objc-general.profdata b/clang/test/Profile/Inputs/objc-general.profdata index 06c9832b3c5..8841e908c92 100644 --- a/clang/test/Profile/Inputs/objc-general.profdata +++ b/clang/test/Profile/Inputs/objc-general.profdata @@ -1,11 +1,17 @@ -objc-general.m:__13+[A foreach:]_block_invoke 2 +objc-general.m:__13+[A foreach:]_block_invoke +2 +2 2 1 -objc-general.m:+[A foreach:] 2 +objc-general.m:+[A foreach:] +2 +2 1 2 -main 1 +main +1 +1 1 diff --git a/clang/test/Profile/c-linkage.c b/clang/test/Profile/c-linkage.c index dddc895068c..22a2535c4e4 100644 --- a/clang/test/Profile/c-linkage.c +++ b/clang/test/Profile/c-linkage.c @@ -3,18 +3,18 @@ // CHECK: @__llvm_pgo_counters_foo = global [1 x i64] zeroinitializer, section "__DATA,__llvm_pgo_cnts", align 8 // CHECK: @__llvm_pgo_name_foo = constant [3 x i8] c"foo", section "__DATA,__llvm_pgo_names", align 1 -// CHECK: @__llvm_pgo_data_foo = constant { i32, i32, i8*, i64* } { i32 3, i32 1, i8* getelementptr inbounds ([3 x i8]* @__llvm_pgo_name_foo, i32 0, i32 0), i64* getelementptr inbounds ([1 x i64]* @__llvm_pgo_counters_foo, i32 0, i32 0) }, section "__DATA,__llvm_pgo_data", align 8 +// CHECK: @__llvm_pgo_data_foo = constant { i32, i32, i64, i8*, i64* } { i32 3, i32 1, i64 1, i8* getelementptr inbounds ([3 x i8]* @__llvm_pgo_name_foo, i32 0, i32 0), i64* getelementptr inbounds ([1 x i64]* @__llvm_pgo_counters_foo, i32 0, i32 0) }, section "__DATA,__llvm_pgo_data", align 8 void foo(void) { } // CHECK: @__llvm_pgo_counters_foo_weak = weak global [5 x i64] zeroinitializer, section "__DATA,__llvm_pgo_cnts", align 8 // CHECK: @__llvm_pgo_name_foo_weak = weak constant [8 x i8] c"foo_weak", section "__DATA,__llvm_pgo_names", align 1 -// CHECK: @__llvm_pgo_data_foo_weak = weak constant { i32, i32, i8*, i64* } { i32 8, i32 5, i8* getelementptr inbounds ([8 x i8]* @__llvm_pgo_name_foo_weak, i32 0, i32 0), i64* getelementptr inbounds ([5 x i64]* @__llvm_pgo_counters_foo_weak, i32 0, i32 0) }, section "__DATA,__llvm_pgo_data", align 8 +// CHECK: @__llvm_pgo_data_foo_weak = weak constant { i32, i32, i64, i8*, i64* } { i32 8, i32 5, i64 5, i8* getelementptr inbounds ([8 x i8]* @__llvm_pgo_name_foo_weak, i32 0, i32 0), i64* getelementptr inbounds ([5 x i64]* @__llvm_pgo_counters_foo_weak, i32 0, i32 0) }, section "__DATA,__llvm_pgo_data", align 8 void foo_weak(void) __attribute__((weak)); void foo_weak(void) { if (0){} if (0){} if (0){} if (0){} } // CHECK: @__llvm_pgo_counters_main = global [1 x i64] zeroinitializer, section "__DATA,__llvm_pgo_cnts", align 8 // CHECK: @__llvm_pgo_name_main = constant [4 x i8] c"main", section "__DATA,__llvm_pgo_names", align 1 -// CHECK: @__llvm_pgo_data_main = constant { i32, i32, i8*, i64* } { i32 4, i32 1, i8* getelementptr inbounds ([4 x i8]* @__llvm_pgo_name_main, i32 0, i32 0), i64* getelementptr inbounds ([1 x i64]* @__llvm_pgo_counters_main, i32 0, i32 0) }, section "__DATA,__llvm_pgo_data", align 8 +// CHECK: @__llvm_pgo_data_main = constant { i32, i32, i64, i8*, i64* } { i32 4, i32 1, i64 1, i8* getelementptr inbounds ([4 x i8]* @__llvm_pgo_name_main, i32 0, i32 0), i64* getelementptr inbounds ([1 x i64]* @__llvm_pgo_counters_main, i32 0, i32 0) }, section "__DATA,__llvm_pgo_data", align 8 static void foo_internal(void); int main(void) { foo(); @@ -25,7 +25,7 @@ int main(void) { // CHECK: @__llvm_pgo_counters_foo_internal = internal global [3 x i64] zeroinitializer, section "__DATA,__llvm_pgo_cnts", align 8 // CHECK: @__llvm_pgo_name_foo_internal = internal constant [24 x i8] c"c-linkage.c:foo_internal", section "__DATA,__llvm_pgo_names", align 1 -// CHECK: @__llvm_pgo_data_foo_internal = internal constant { i32, i32, i8*, i64* } { i32 24, i32 3, i8* getelementptr inbounds ([24 x i8]* @__llvm_pgo_name_foo_internal, i32 0, i32 0), i64* getelementptr inbounds ([3 x i64]* @__llvm_pgo_counters_foo_internal, i32 0, i32 0) }, section "__DATA,__llvm_pgo_data", align 8 +// CHECK: @__llvm_pgo_data_foo_internal = internal constant { i32, i32, i64, i8*, i64* } { i32 24, i32 3, i64 3, i8* getelementptr inbounds ([24 x i8]* @__llvm_pgo_name_foo_internal, i32 0, i32 0), i64* getelementptr inbounds ([3 x i64]* @__llvm_pgo_counters_foo_internal, i32 0, i32 0) }, section "__DATA,__llvm_pgo_data", align 8 static void foo_internal(void) { if (0){} if (0){} } -// CHECK: @llvm.used = appending global [4 x i8*] [i8* bitcast ({ i32, i32, i8*, i64* }* @__llvm_pgo_data_foo to i8*), i8* bitcast ({ i32, i32, i8*, i64* }* @__llvm_pgo_data_foo_weak to i8*), i8* bitcast ({ i32, i32, i8*, i64* }* @__llvm_pgo_data_main to i8*), i8* bitcast ({ i32, i32, i8*, i64* }* @__llvm_pgo_data_foo_internal to i8*)], section "llvm.metadata" +// CHECK: @llvm.used = appending global [4 x i8*] [i8* bitcast ({ i32, i32, i64, i8*, i64* }* @__llvm_pgo_data_foo to i8*), i8* bitcast ({ i32, i32, i64, i8*, i64* }* @__llvm_pgo_data_foo_weak to i8*), i8* bitcast ({ i32, i32, i64, i8*, i64* }* @__llvm_pgo_data_main to i8*), i8* bitcast ({ i32, i32, i64, i8*, i64* }* @__llvm_pgo_data_foo_internal to i8*)], section "llvm.metadata" diff --git a/clang/test/Profile/cxx-linkage.cpp b/clang/test/Profile/cxx-linkage.cpp index 6597e25105b..8c49dff26a5 100644 --- a/clang/test/Profile/cxx-linkage.cpp +++ b/clang/test/Profile/cxx-linkage.cpp @@ -2,18 +2,18 @@ // CHECK: @__llvm_pgo_counters__Z3foov = global [1 x i64] zeroinitializer, section "__DATA,__llvm_pgo_cnts", align 8 // CHECK: @__llvm_pgo_name__Z3foov = constant [7 x i8] c"_Z3foov", section "__DATA,__llvm_pgo_names", align 1 -// CHECK: @__llvm_pgo_data__Z3foov = constant { i32, i32, i8*, i64* } { i32 7, i32 1, i8* getelementptr inbounds ([7 x i8]* @__llvm_pgo_name__Z3foov, i32 0, i32 0), i64* getelementptr inbounds ([1 x i64]* @__llvm_pgo_counters__Z3foov, i32 0, i32 0) }, section "__DATA,__llvm_pgo_data", align 8 +// CHECK: @__llvm_pgo_data__Z3foov = constant { i32, i32, i64, i8*, i64* } { i32 7, i32 1, i64 1, i8* getelementptr inbounds ([7 x i8]* @__llvm_pgo_name__Z3foov, i32 0, i32 0), i64* getelementptr inbounds ([1 x i64]* @__llvm_pgo_counters__Z3foov, i32 0, i32 0) }, section "__DATA,__llvm_pgo_data", align 8 void foo(void) { } // CHECK: @__llvm_pgo_counters__Z8foo_weakv = weak global [5 x i64] zeroinitializer, section "__DATA,__llvm_pgo_cnts", align 8 // CHECK: @__llvm_pgo_name__Z8foo_weakv = weak constant [12 x i8] c"_Z8foo_weakv", section "__DATA,__llvm_pgo_names", align 1 -// CHECK: @__llvm_pgo_data__Z8foo_weakv = weak constant { i32, i32, i8*, i64* } { i32 12, i32 5, i8* getelementptr inbounds ([12 x i8]* @__llvm_pgo_name__Z8foo_weakv, i32 0, i32 0), i64* getelementptr inbounds ([5 x i64]* @__llvm_pgo_counters__Z8foo_weakv, i32 0, i32 0) }, section "__DATA,__llvm_pgo_data", align 8 +// CHECK: @__llvm_pgo_data__Z8foo_weakv = weak constant { i32, i32, i64, i8*, i64* } { i32 12, i32 5, i64 5, i8* getelementptr inbounds ([12 x i8]* @__llvm_pgo_name__Z8foo_weakv, i32 0, i32 0), i64* getelementptr inbounds ([5 x i64]* @__llvm_pgo_counters__Z8foo_weakv, i32 0, i32 0) }, section "__DATA,__llvm_pgo_data", align 8 void foo_weak(void) __attribute__((weak)); void foo_weak(void) { if (0){} if (0){} if (0){} if (0){} } // CHECK: @__llvm_pgo_counters_main = global [1 x i64] zeroinitializer, section "__DATA,__llvm_pgo_cnts", align 8 // CHECK: @__llvm_pgo_name_main = constant [4 x i8] c"main", section "__DATA,__llvm_pgo_names", align 1 -// CHECK: @__llvm_pgo_data_main = constant { i32, i32, i8*, i64* } { i32 4, i32 1, i8* getelementptr inbounds ([4 x i8]* @__llvm_pgo_name_main, i32 0, i32 0), i64* getelementptr inbounds ([1 x i64]* @__llvm_pgo_counters_main, i32 0, i32 0) }, section "__DATA,__llvm_pgo_data", align 8 +// CHECK: @__llvm_pgo_data_main = constant { i32, i32, i64, i8*, i64* } { i32 4, i32 1, i64 1, i8* getelementptr inbounds ([4 x i8]* @__llvm_pgo_name_main, i32 0, i32 0), i64* getelementptr inbounds ([1 x i64]* @__llvm_pgo_counters_main, i32 0, i32 0) }, section "__DATA,__llvm_pgo_data", align 8 inline void foo_inline(void); int main(void) { foo(); @@ -24,7 +24,7 @@ int main(void) { // CHECK: @__llvm_pgo_counters__Z10foo_inlinev = linkonce_odr global [7 x i64] zeroinitializer, section "__DATA,__llvm_pgo_cnts", align 8 // CHECK: @__llvm_pgo_name__Z10foo_inlinev = linkonce_odr constant [15 x i8] c"_Z10foo_inlinev", section "__DATA,__llvm_pgo_names", align 1 -// CHECK: @__llvm_pgo_data__Z10foo_inlinev = linkonce_odr constant { i32, i32, i8*, i64* } { i32 15, i32 7, i8* getelementptr inbounds ([15 x i8]* @__llvm_pgo_name__Z10foo_inlinev, i32 0, i32 0), i64* getelementptr inbounds ([7 x i64]* @__llvm_pgo_counters__Z10foo_inlinev, i32 0, i32 0) }, section "__DATA,__llvm_pgo_data", align 8 +// CHECK: @__llvm_pgo_data__Z10foo_inlinev = linkonce_odr constant { i32, i32, i64, i8*, i64* } { i32 15, i32 7, i64 7, i8* getelementptr inbounds ([15 x i8]* @__llvm_pgo_name__Z10foo_inlinev, i32 0, i32 0), i64* getelementptr inbounds ([7 x i64]* @__llvm_pgo_counters__Z10foo_inlinev, i32 0, i32 0) }, section "__DATA,__llvm_pgo_data", align 8 inline void foo_inline(void) { if (0){} if (0){} if (0){} if (0){} if (0){} if (0){}} -// CHECK: @llvm.used = appending global [4 x i8*] [i8* bitcast ({ i32, i32, i8*, i64* }* @__llvm_pgo_data__Z3foov to i8*), i8* bitcast ({ i32, i32, i8*, i64* }* @__llvm_pgo_data__Z8foo_weakv to i8*), i8* bitcast ({ i32, i32, i8*, i64* }* @__llvm_pgo_data_main to i8*), i8* bitcast ({ i32, i32, i8*, i64* }* @__llvm_pgo_data__Z10foo_inlinev to i8*)], section "llvm.metadata" +// CHECK: @llvm.used = appending global [4 x i8*] [i8* bitcast ({ i32, i32, i64, i8*, i64* }* @__llvm_pgo_data__Z3foov to i8*), i8* bitcast ({ i32, i32, i64, i8*, i64* }* @__llvm_pgo_data__Z8foo_weakv to i8*), i8* bitcast ({ i32, i32, i64, i8*, i64* }* @__llvm_pgo_data_main to i8*), i8* bitcast ({ i32, i32, i64, i8*, i64* }* @__llvm_pgo_data__Z10foo_inlinev to i8*)], section "llvm.metadata" |