From bb9bdef4df8a9db4f9ff4ed340cf59948f2145c7 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Fri, 25 Mar 2022 21:05:58 +0000 Subject: [PATCH] [Clang] Use pattern to match profile metadata in test. Make the test more robust to slightly different metadata numbering by using a pattern instead of hard coding the ids. --- .../attr-likelihood-if-vs-builtin-expect.cpp | 60 +++++++++++----------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/clang/test/CodeGenCXX/attr-likelihood-if-vs-builtin-expect.cpp b/clang/test/CodeGenCXX/attr-likelihood-if-vs-builtin-expect.cpp index b20537b..eeb6a8b 100644 --- a/clang/test/CodeGenCXX/attr-likelihood-if-vs-builtin-expect.cpp +++ b/clang/test/CodeGenCXX/attr-likelihood-if-vs-builtin-expect.cpp @@ -9,9 +9,9 @@ extern bool c(); void ab1(int &i) { // CHECK-LABEL: define{{.*}}ab1 - // CHECK: br {{.*}} !prof !6 - // CHECK: br {{.*}} !prof !6 - // CHECK: br {{.*}} !prof !6 + // CHECK: br {{.*}} !prof [[BW_LIKELY:!.+]] + // CHECK: br {{.*}} !prof [[BW_LIKELY]] + // CHECK: br {{.*}} !prof [[BW_LIKELY]] if (__builtin_expect(a() && b() && a(), 1)) { ++i; } else { @@ -21,9 +21,9 @@ void ab1(int &i) { void al(int &i) { // CHECK-LABEL: define{{.*}}al - // CHECK: br {{.*}} !prof !6 - // CHECK: br {{.*}} !prof !6 - // CHECK: br {{.*}} !prof !6 + // CHECK: br {{.*}} !prof [[BW_LIKELY]] + // CHECK: br {{.*}} !prof [[BW_LIKELY]] + // CHECK: br {{.*}} !prof [[BW_LIKELY]] if (a() && b() && c()) [[likely]] { ++i; } else { @@ -36,7 +36,7 @@ void ab0(int &i) { // CHECK: br {{.*}}end{{$}} // CHECK: br {{.*}}end{{$}} // CHECK: br {{.*}}end{{$}} - // CHECK: br {{.*}} !prof !9 + // CHECK: br {{.*}} !prof [[BW_UNLIKELY:!.+]] if (__builtin_expect(a() && b() && c(), 0)) { ++i; } else { @@ -48,7 +48,7 @@ void au(int &i) { // CHECK-LABEL: define{{.*}}au // CHECK: br {{.*}}else{{$}} // CHECK: br {{.*}}else{{$}} - // CHECK: br {{.*}} !prof !9 + // CHECK: br {{.*}} !prof [[BW_UNLIKELY]] if (a() && b() && c()) [[unlikely]] { ++i; } else { @@ -61,7 +61,7 @@ void ob1(int &i) { // CHECK: br {{.*}}false{{$}} // CHECK: br {{.*}}rhs{{$}} // CHECK: br {{.*}}end{{$}} - // CHECK: br {{.*}} !prof !6 + // CHECK: br {{.*}} !prof [[BW_LIKELY]] if (__builtin_expect(a() || b() || a(), 1)) { i = 0; } else { @@ -73,7 +73,7 @@ void ol(int &i) { // CHECK-LABEL: define{{.*}}ol // CHECK: br {{.*}}false{{$}} // CHECK: br {{.*}}false2{{$}} - // CHECK: br {{.*}} !prof !6 + // CHECK: br {{.*}} !prof [[BW_LIKELY]] if (a() || b() || c()) [[likely]] { i = 0; } else { @@ -83,9 +83,9 @@ void ol(int &i) { void ob0(int &i) { // CHECK-LABEL: define{{.*}}ob0 - // CHECK: br {{.*}} !prof !9 - // CHECK: br {{.*}} !prof !9 - // CHECK: br {{.*}} !prof !9 + // CHECK: br {{.*}} !prof [[BW_UNLIKELY]] + // CHECK: br {{.*}} !prof [[BW_UNLIKELY]] + // CHECK: br {{.*}} !prof [[BW_UNLIKELY]] if (__builtin_expect(a() || b() || c(), 0)) { i = 0; } else { @@ -95,9 +95,9 @@ void ob0(int &i) { void ou(int &i) { // CHECK-LABEL: define{{.*}}ou - // CHECK: br {{.*}} !prof !9 - // CHECK: br {{.*}} !prof !9 - // CHECK: br {{.*}} !prof !9 + // CHECK: br {{.*}} !prof [[BW_UNLIKELY]] + // CHECK: br {{.*}} !prof [[BW_UNLIKELY]] + // CHECK: br {{.*}} !prof [[BW_UNLIKELY]] if (a() || b() || c()) [[unlikely]] { i = 0; } else { @@ -107,7 +107,7 @@ void ou(int &i) { void nb1(int &i) { // CHECK-LABEL: define{{.*}}nb1 - // CHECK: br {{.*}} !prof !6 + // CHECK: br {{.*}} !prof [[BW_LIKELY]] if (__builtin_expect(!a(), 1)) { ++i; } else { @@ -117,7 +117,7 @@ void nb1(int &i) { void nl(int &i) { // CHECK-LABEL: define{{.*}}nl - // CHECK: br {{.*}} !prof !6 + // CHECK: br {{.*}} !prof [[BW_LIKELY]] if (bool d = !a()) [[likely]] { ++i; } else { @@ -127,7 +127,7 @@ void nl(int &i) { void nb0(int &i) { // CHECK-LABEL: define{{.*}}nb0 - // CHECK: br {{.*}} !prof !9 + // CHECK: br {{.*}} !prof [[BW_UNLIKELY]] if (__builtin_expect(!a(), 0)) { ++i; } else { @@ -137,7 +137,7 @@ void nb0(int &i) { void nu(int &i) { // CHECK-LABEL: define{{.*}}nu - // CHECK: br {{.*}} !prof !9 + // CHECK: br {{.*}} !prof [[BW_UNLIKELY]] if (bool d = !a()) [[unlikely]] { ++i; } else { @@ -150,7 +150,7 @@ void tb1(int &i) { // CHECK: br {{.*}}false{{$}} // CHECK: br {{.*}}end{{$}} // CHECK: br {{.*}}end{{$}} - // CHECK: br {{.*}} !prof !6 + // CHECK: br {{.*}} !prof [[BW_LIKELY]] if (__builtin_expect(a() ? b() : c(), 1)) { ++i; } else { @@ -163,7 +163,7 @@ void tl(int &i) { // CHECK: br {{.*}}false{{$}} // CHECK: br {{.*}}end{{$}} // CHECK: br {{.*}}end{{$}} - // CHECK: br {{.*}} !prof !6 + // CHECK: br {{.*}} !prof [[BW_LIKELY]] if (bool d = a() ? b() : c()) [[likely]] { ++i; } else { @@ -174,8 +174,8 @@ void tl(int &i) { void tl2(int &i) { // CHECK-LABEL: define{{.*}}tl // CHECK: br {{.*}}false{{$}} - // CHECK: br {{.*}} !prof !6 - // CHECK: br {{.*}} !prof !6 + // CHECK: br {{.*}} !prof [[BW_LIKELY]] + // CHECK: br {{.*}} !prof [[BW_LIKELY]] if (a() ? b() : c()) [[likely]] { ++i; } else { @@ -188,7 +188,7 @@ void tb0(int &i) { // CHECK: br {{.*}}false{{$}} // CHECK: br {{.*}}end{{$}} // CHECK: br {{.*}}end{{$}} - // CHECK: br {{.*}} !prof !9 + // CHECK: br {{.*}} !prof [[BW_UNLIKELY]] if (__builtin_expect(a() ? b() : c(), 0)) { ++i; } else { @@ -201,7 +201,7 @@ void tu(int &i) { // CHECK: br {{.*}}false{{$}} // CHECK: br {{.*}}end{{$}} // CHECK: br {{.*}}end{{$}} - // CHECK: br {{.*}} !prof !9 + // CHECK: br {{.*}} !prof [[BW_UNLIKELY]] if (bool d = a() ? b() : c()) [[unlikely]] { ++i; } else { @@ -212,8 +212,8 @@ void tu(int &i) { void tu2(int &i) { // CHECK-LABEL: define{{.*}}tu // CHECK: br {{.*}}false{{$}} - // CHECK: br {{.*}} !prof !9 - // CHECK: br {{.*}} !prof !9 + // CHECK: br {{.*}} !prof [[BW_UNLIKELY]] + // CHECK: br {{.*}} !prof [[BW_UNLIKELY]] if (a() ? b() : c()) [[unlikely]] { ++i; } else { @@ -221,5 +221,5 @@ void tu2(int &i) { } } -// CHECK: !6 = !{!"branch_weights", i32 2000, i32 1} -// CHECK: !9 = !{!"branch_weights", i32 1, i32 2000} +// CHECK: [[BW_LIKELY]] = !{!"branch_weights", i32 2000, i32 1} +// CHECK: [[BW_UNLIKELY]] = !{!"branch_weights", i32 1, i32 2000} -- 2.7.4