; REQUIRES: x86_64-linux ; ; Check that we don't prune the contextual profile, unless the module name ; matches the guid of the root. ; ; RUN: rm -rf %t ; RUN: split-file %s %t ; RUN: llvm-ctxprof-util fromYAML --input=%t/profile.yaml --output=%t/profile.ctxprofdata ; ; RUN: cp %t/example.ll %t/1234.ll ; RUN: cp %t/example.ll %t/0x4d2.ll ; ; RUN: opt -passes='require,print' \ ; RUN: -use-ctx-profile=%t/profile.ctxprofdata \ ; RUN: -ctx-profile-printer-level=everything \ ; RUN: %t/example.ll -S 2>&1 | FileCheck %s ; RUN: opt -passes='require,print' \ ; RUN: -use-ctx-profile=%t/profile.ctxprofdata \ ; RUN: -ctx-profile-printer-level=everything \ ; RUN: %t/not-matching.ll -S 2>&1 | FileCheck %s ; RUN: opt -passes='require,print' \ ; RUN: -use-ctx-profile=%t/profile.ctxprofdata \ ; RUN: -ctx-profile-printer-level=everything \ ; RUN: %t/0x4d2.ll -S 2>&1 | FileCheck %s --check-prefix=PRUNED ; CHECK: Contexts: ; CHECK: - Guid: 1234 ; CHECK: - Guid: 5678 ; CHECK: FlatProfiles: ; PRUNED-NOT: - Guid: 5678 ; PRUNED-NOT: FlatProfiles ; ; pick a large GUID that would be negative, if signed, to test a few ways the ; file name may be formatted. ;--- profile.yaml Contexts: - Guid: 1234 TotalRootEntryCount: 24 Counters: [9] Callsites: - - Guid: 1000 Counters: [6, 7] - Guid: 5678 TotalRootEntryCount: 24 Counters: [9] Callsites: - - Guid: 1000 Counters: [6, 7] FlatProfiles: - Guid: 777 Counters: [2] ;--- example.ll define void @an_entrypoint(i32 %a) !guid !0 { ret void } attributes #0 = { noinline } !0 = !{ i64 1234 } ;--- not-matching.ll define void @an_entrypoint(i32 %a) !guid !0 { ret void } attributes #0 = { noinline } !0 = !{ i64 1000 }