Skip to content

Commit 8476ba7

Browse files
[memprof] YAMLify one test (NFC) (#119955)
This patch replaces the raw binary profile with a YAML profile. I've trimmed the profile by removing all MemProfRecords except the one for _Z3foov. This patch demonstrates that we can see !memprof generated even with a YAML profile.
1 parent 6dc24f6 commit 8476ba7

File tree

1 file changed

+74
-6
lines changed

1 file changed

+74
-6
lines changed

llvm/test/Transforms/PGOProfile/memprof_match_hot_cold_new_calls.ll

Lines changed: 74 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,89 @@
44
;; Avoid failures on big-endian systems that can't read the profile properly
55
; REQUIRES: x86_64-linux
66

7-
;; TODO: Use text profile inputs once that is available for memprof.
8-
;; This test uses the same raw profile used for memprof.ll, see instructions
9-
;; in that file for updating.
7+
;; Generate the profile and the IR.
8+
; RUN: split-file %s %t
109

1110
;; Generate indexed profile
12-
; RUN: llvm-profdata merge %S/Inputs/memprof.memprofraw --profiled-binary %S/Inputs/memprof.exe -o %t.memprofdata
11+
; RUN: llvm-profdata merge %t/memprof_match_hot_cold_new_calls.yaml -o %t.memprofdata
1312

1413
;; By default we should not match profile on to manually hinted operator
1514
;; new calls, because we don't currently override the manual hints anyway.
16-
; RUN: opt < %s -passes='memprof-use<profile-filename=%t.memprofdata>' -S 2>&1 | FileCheck %s --implicit-check-not !memprof --implicit-check-not !callsite
15+
; RUN: opt < %t/memprof_match_hot_cold_new_calls.ll -passes='memprof-use<profile-filename=%t.memprofdata>' -S 2>&1 | FileCheck %s --implicit-check-not !memprof --implicit-check-not !callsite
1716

1817
;; Check that we match profiles onto these manually hinted new calls
1918
;; under the -memprof-match-hot-cold-new=true option.
20-
; RUN: opt < %s -passes='memprof-use<profile-filename=%t.memprofdata>' -S -memprof-match-hot-cold-new=true 2>&1 | FileCheck %s --check-prefixes=MEMPROF
19+
; RUN: opt < %t/memprof_match_hot_cold_new_calls.ll -passes='memprof-use<profile-filename=%t.memprofdata>' -S -memprof-match-hot-cold-new=true 2>&1 | FileCheck %s --check-prefixes=MEMPROF
2120

21+
;--- memprof_match_hot_cold_new_calls.yaml
22+
---
23+
HeapProfileRecords:
24+
- GUID: _Z3foov
25+
AllocSites:
26+
- Callstack:
27+
- { Function: _Z3foov, LineOffset: 1, Column: 10, IsInlineFrame: false }
28+
- { Function: main, LineOffset: 6, Column: 13, IsInlineFrame: false }
29+
MemInfoBlock:
30+
AllocCount: 1
31+
TotalSize: 10
32+
TotalLifetime: 0
33+
TotalLifetimeAccessDensity: 20000
34+
- Callstack:
35+
- { Function: _Z3foov, LineOffset: 1, Column: 10, IsInlineFrame: false }
36+
- { Function: main, LineOffset: 7, Column: 13, IsInlineFrame: false }
37+
MemInfoBlock:
38+
AllocCount: 1
39+
TotalSize: 10
40+
TotalLifetime: 200000
41+
TotalLifetimeAccessDensity: 0
42+
- Callstack:
43+
- { Function: _Z3foov, LineOffset: 1, Column: 10, IsInlineFrame: false }
44+
- { Function: _Z4foo2v, LineOffset: 1, Column: 10, IsInlineFrame: false }
45+
- { Function: _Z3barv, LineOffset: 1, Column: 10, IsInlineFrame: false }
46+
- { Function: main, LineOffset: 8, Column: 13, IsInlineFrame: false }
47+
MemInfoBlock:
48+
AllocCount: 1
49+
TotalSize: 10
50+
TotalLifetime: 200000
51+
TotalLifetimeAccessDensity: 0
52+
- Callstack:
53+
- { Function: _Z3foov, LineOffset: 1, Column: 10, IsInlineFrame: false }
54+
- { Function: _Z4foo2v, LineOffset: 1, Column: 10, IsInlineFrame: false }
55+
- { Function: _Z3bazv, LineOffset: 1, Column: 10, IsInlineFrame: false }
56+
- { Function: main, LineOffset: 9, Column: 13, IsInlineFrame: false }
57+
MemInfoBlock:
58+
AllocCount: 1
59+
TotalSize: 10
60+
TotalLifetime: 200000
61+
TotalLifetimeAccessDensity: 0
62+
- Callstack:
63+
- { Function: _Z3foov, LineOffset: 1, Column: 10, IsInlineFrame: false }
64+
- { Function: _Z7recursej, LineOffset: 2, Column: 12, IsInlineFrame: false }
65+
- { Function: _Z7recursej, LineOffset: 3, Column: 10, IsInlineFrame: false }
66+
- { Function: _Z7recursej, LineOffset: 3, Column: 10, IsInlineFrame: false }
67+
- { Function: _Z7recursej, LineOffset: 3, Column: 10, IsInlineFrame: false }
68+
- { Function: main, LineOffset: 31, Column: 15, IsInlineFrame: false }
69+
MemInfoBlock:
70+
AllocCount: 1
71+
TotalSize: 10
72+
TotalLifetime: 200000
73+
TotalLifetimeAccessDensity: 0
74+
- Callstack:
75+
- { Function: _Z3foov, LineOffset: 1, Column: 10, IsInlineFrame: false }
76+
- { Function: _Z7recursej, LineOffset: 2, Column: 12, IsInlineFrame: false }
77+
- { Function: _Z7recursej, LineOffset: 3, Column: 10, IsInlineFrame: false }
78+
- { Function: _Z7recursej, LineOffset: 3, Column: 10, IsInlineFrame: false }
79+
- { Function: _Z7recursej, LineOffset: 3, Column: 10, IsInlineFrame: false }
80+
- { Function: _Z7recursej, LineOffset: 3, Column: 10, IsInlineFrame: false }
81+
- { Function: main, LineOffset: 31, Column: 15, IsInlineFrame: false }
82+
MemInfoBlock:
83+
AllocCount: 1
84+
TotalSize: 10
85+
TotalLifetime: 0
86+
TotalLifetimeAccessDensity: 20000
87+
CallSites: []
88+
...
89+
;--- memprof_match_hot_cold_new_calls.ll
2290
; ModuleID = 'memprof_match_hot_cold_new_calls.cc'
2391
source_filename = "memprof_match_hot_cold_new_calls.cc"
2492
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"

0 commit comments

Comments
 (0)