From 11598143f4f53335eded50ce687d1489c8f38cea Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sat, 26 Mar 2016 03:06:42 +0000 Subject: [PATCH] Stop depending on the keys in a hash table being in a particular order. llvm-svn: 264488 --- compiler-rt/test/profile/instrprof-value-prof-2.c | 160 +++++++++++----------- 1 file changed, 83 insertions(+), 77 deletions(-) diff --git a/compiler-rt/test/profile/instrprof-value-prof-2.c b/compiler-rt/test/profile/instrprof-value-prof-2.c index 989353e..81ca141 100644 --- a/compiler-rt/test/profile/instrprof-value-prof-2.c +++ b/compiler-rt/test/profile/instrprof-value-prof-2.c @@ -1,7 +1,13 @@ // RUN: %clang_profgen -O2 -o %t %s // RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t // RUN: llvm-profdata merge -o %t.profdata %t.profraw -// RUN: llvm-profdata show --all-functions -ic-targets %t.profdata | FileCheck %s +// RUN: llvm-profdata show --all-functions -ic-targets %t.profdata > %t.out +// RUN: FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-1 < %t.out +// RUN: FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-2 < %t.out +// RUN: FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-3 < %t.out +// RUN: FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-4 < %t.out +// RUN: FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-5 < %t.out +// RUN: FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-6 < %t.out #include #include @@ -57,79 +63,79 @@ int main(int argc, const char *argv[]) { } } -// CHECK-LABEL: caller_with_value_site_never_called2: -// CHECK-NEXT: Hash: 0x0000000000000000 -// CHECK-NEXT: Counters: -// CHECK-NEXT: Function count -// CHECK-NEXT: Indirect Call Site Count: 10 -// CHECK-NEXT: Indirect Target Results: -// CHECK-LABEL: caller_with_vp2: -// CHECK-NEXT: Hash: 0x0000000000000000 -// CHECK-NEXT: Counters: -// CHECK-NEXT: Function count: -// CHECK-NEXT: Indirect Call Site Count: 10 -// CHECK-NEXT: Indirect Target Results: -// CHECK-NEXT: [ 0, callee1, 1 ] -// CHECK-NEXT: [ 0, callee2, 1 ] -// CHECK-NEXT: [ 1, callee1, 2 ] -// CHECK-NEXT: [ 1, callee2, 1 ] -// CHECK-NEXT: [ 2, callee1, 3 ] -// CHECK-NEXT: [ 2, callee2, 2 ] -// CHECK-NEXT: [ 3, callee1, 4 ] -// CHECK-NEXT: [ 3, callee2, 2 ] -// CHECK-NEXT: [ 4, callee1, 5 ] -// CHECK-NEXT: [ 4, callee2, 3 ] -// CHECK-NEXT: [ 5, callee1, 6 ] -// CHECK-NEXT: [ 5, callee2, 3 ] -// CHECK-NEXT: [ 6, callee1, 7 ] -// CHECK-NEXT: [ 6, callee2, 4 ] -// CHECK-NEXT: [ 7, callee1, 8 ] -// CHECK-NEXT: [ 7, callee2, 4 ] -// CHECK-NEXT: [ 8, callee1, 9 ] -// CHECK-NEXT: [ 8, callee2, 5 ] -// CHECK-NEXT: [ 9, callee1, 10 ] -// CHECK-NEXT: [ 9, callee2, 5 ] -// CHECK-LABEL: caller_with_vp1: -// CHECK-NEXT: Hash: 0x0000000000000000 -// CHECK-NEXT: Counters: -// CHECK-NEXT: Function count -// CHECK-NEXT: Indirect Call Site Count: 10 -// CHECK-NEXT: Indirect Target Results: -// CHECK-NEXT: [ 0, callee1, 1 ] -// CHECK-NEXT: [ 0, callee2, 1 ] -// CHECK-NEXT: [ 1, callee1, 2 ] -// CHECK-NEXT: [ 1, callee2, 1 ] -// CHECK-NEXT: [ 2, callee1, 3 ] -// CHECK-NEXT: [ 2, callee2, 2 ] -// CHECK-NEXT: [ 3, callee1, 4 ] -// CHECK-NEXT: [ 3, callee2, 2 ] -// CHECK-NEXT: [ 4, callee1, 5 ] -// CHECK-NEXT: [ 4, callee2, 3 ] -// CHECK-NEXT: [ 5, callee1, 6 ] -// CHECK-NEXT: [ 5, callee2, 3 ] -// CHECK-NEXT: [ 6, callee1, 7 ] -// CHECK-NEXT: [ 6, callee2, 4 ] -// CHECK-NEXT: [ 7, callee1, 8 ] -// CHECK-NEXT: [ 7, callee2, 4 ] -// CHECK-NEXT: [ 8, callee1, 9 ] -// CHECK-NEXT: [ 8, callee2, 5 ] -// CHECK-NEXT: [ 9, callee1, 10 ] -// CHECK-NEXT: [ 9, callee2, 5 ] -// CHECK-LABEL: caller_with_value_site_never_called1: -// CHECK-NEXT: Hash: 0x0000000000000000 -// CHECK-NEXT: Counters: -// CHECK-NEXT: Function count: -// CHECK-NEXT: Indirect Call Site Count: 10 -// CHECK-NEXT: Indirect Target Results: -// CHECK-LABEL: caller_without_value_site2: -// CHECK-NEXT: Hash: 0x0000000000000000 -// CHECK-NEXT: Counters: -// CHECK-NEXT: Function count: -// CHECK-NEXT: Indirect Call Site Count: 0 -// CHECK-NEXT: Indirect Target Results: -// CHECK-LABEL: caller_without_value_site1: -// CHECK-NEXT: Hash: 0x0000000000000000 -// CHECK-NEXT: Counters: -// CHECK-NEXT: Function count: -// CHECK-NEXT: Indirect Call Site Count: 0 -// CHECK-NEXT: Indirect Target Results: +// CHECK-1-LABEL: caller_with_value_site_never_called2: +// CHECK-1-NEXT: Hash: 0x0000000000000000 +// CHECK-1-NEXT: Counters: +// CHECK-1-NEXT: Function count +// CHECK-1-NEXT: Indirect Call Site Count: 10 +// CHECK-1-NEXT: Indirect Target Results: +// CHECK-2-LABEL: caller_with_vp2: +// CHECK-2-NEXT: Hash: 0x0000000000000000 +// CHECK-2-NEXT: Counters: +// CHECK-2-NEXT: Function count: +// CHECK-2-NEXT: Indirect Call Site Count: 10 +// CHECK-2-NEXT: Indirect Target Results: +// CHECK-2-NEXT: [ 0, callee1, 1 ] +// CHECK-2-NEXT: [ 0, callee2, 1 ] +// CHECK-2-NEXT: [ 1, callee1, 2 ] +// CHECK-2-NEXT: [ 1, callee2, 1 ] +// CHECK-2-NEXT: [ 2, callee1, 3 ] +// CHECK-2-NEXT: [ 2, callee2, 2 ] +// CHECK-2-NEXT: [ 3, callee1, 4 ] +// CHECK-2-NEXT: [ 3, callee2, 2 ] +// CHECK-2-NEXT: [ 4, callee1, 5 ] +// CHECK-2-NEXT: [ 4, callee2, 3 ] +// CHECK-2-NEXT: [ 5, callee1, 6 ] +// CHECK-2-NEXT: [ 5, callee2, 3 ] +// CHECK-2-NEXT: [ 6, callee1, 7 ] +// CHECK-2-NEXT: [ 6, callee2, 4 ] +// CHECK-2-NEXT: [ 7, callee1, 8 ] +// CHECK-2-NEXT: [ 7, callee2, 4 ] +// CHECK-2-NEXT: [ 8, callee1, 9 ] +// CHECK-2-NEXT: [ 8, callee2, 5 ] +// CHECK-2-NEXT: [ 9, callee1, 10 ] +// CHECK-2-NEXT: [ 9, callee2, 5 ] +// CHECK-3-LABEL: caller_with_vp1: +// CHECK-3-NEXT: Hash: 0x0000000000000000 +// CHECK-3-NEXT: Counters: +// CHECK-3-NEXT: Function count +// CHECK-3-NEXT: Indirect Call Site Count: 10 +// CHECK-3-NEXT: Indirect Target Results: +// CHECK-3-NEXT: [ 0, callee1, 1 ] +// CHECK-3-NEXT: [ 0, callee2, 1 ] +// CHECK-3-NEXT: [ 1, callee1, 2 ] +// CHECK-3-NEXT: [ 1, callee2, 1 ] +// CHECK-3-NEXT: [ 2, callee1, 3 ] +// CHECK-3-NEXT: [ 2, callee2, 2 ] +// CHECK-3-NEXT: [ 3, callee1, 4 ] +// CHECK-3-NEXT: [ 3, callee2, 2 ] +// CHECK-3-NEXT: [ 4, callee1, 5 ] +// CHECK-3-NEXT: [ 4, callee2, 3 ] +// CHECK-3-NEXT: [ 5, callee1, 6 ] +// CHECK-3-NEXT: [ 5, callee2, 3 ] +// CHECK-3-NEXT: [ 6, callee1, 7 ] +// CHECK-3-NEXT: [ 6, callee2, 4 ] +// CHECK-3-NEXT: [ 7, callee1, 8 ] +// CHECK-3-NEXT: [ 7, callee2, 4 ] +// CHECK-3-NEXT: [ 8, callee1, 9 ] +// CHECK-3-NEXT: [ 8, callee2, 5 ] +// CHECK-3-NEXT: [ 9, callee1, 10 ] +// CHECK-3-NEXT: [ 9, callee2, 5 ] +// CHECK-4-LABEL: caller_with_value_site_never_called1: +// CHECK-4-NEXT: Hash: 0x0000000000000000 +// CHECK-4-NEXT: Counters: +// CHECK-4-NEXT: Function count: +// CHECK-4-NEXT: Indirect Call Site Count: 10 +// CHECK-4-NEXT: Indirect Target Results: +// CHECK-5-LABEL: caller_without_value_site2: +// CHECK-5-NEXT: Hash: 0x0000000000000000 +// CHECK-5-NEXT: Counters: +// CHECK-5-NEXT: Function count: +// CHECK-5-NEXT: Indirect Call Site Count: 0 +// CHECK-5-NEXT: Indirect Target Results: +// CHECK-6-LABEL: caller_without_value_site1: +// CHECK-6-NEXT: Hash: 0x0000000000000000 +// CHECK-6-NEXT: Counters: +// CHECK-6-NEXT: Function count: +// CHECK-6-NEXT: Indirect Call Site Count: 0 +// CHECK-6-NEXT: Indirect Target Results: -- 2.7.4