[llvm-branch-commits] [llvm] [NFC][MemProf] Use YAML in memprof-inline-call-stacks.ll (PR #216877)
Ellis Hoag via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Aug 17 16:52:42 PDT 2026
https://github.com/ellishg updated https://github.com/llvm/llvm-project/pull/216877
>From 8098543523792f1f2ab3a32b71e1f739454e9cc8 Mon Sep 17 00:00:00 2001
From: Ellis Hoag <ellishoag at meta.com>
Date: Mon, 17 Aug 2026 16:20:21 -0700
Subject: [PATCH 1/2] [NFC][MemProf] Use YAML in memprof-inline-call-stacks.ll
---
.../PGOProfile/memprof-inline-call-stacks.ll | 120 +++++++++++++++++-
1 file changed, 117 insertions(+), 3 deletions(-)
diff --git a/llvm/test/Transforms/PGOProfile/memprof-inline-call-stacks.ll b/llvm/test/Transforms/PGOProfile/memprof-inline-call-stacks.ll
index dd56c0f47607c..8a1d0194daa05 100644
--- a/llvm/test/Transforms/PGOProfile/memprof-inline-call-stacks.ll
+++ b/llvm/test/Transforms/PGOProfile/memprof-inline-call-stacks.ll
@@ -1,6 +1,6 @@
-; REQUIRES: x86_64-linux
-; RUN: llvm-profdata merge %S/Inputs/memprof.memprofraw --profiled-binary %S/Inputs/memprof.exe -o %t.memprofdata
-; RUN: opt < %s -passes='memprof-use<profile-filename=%t.memprofdata>' -pass-remarks-analysis=memprof -S 2>&1 | FileCheck %s
+; RUN: rm -rf %t && split-file %s %t
+; RUN: llvm-profdata merge %t/a.yaml -o %t/a.memprofdata
+; RUN: opt < %t/a.ll -passes='memprof-use<profile-filename=%t/a.memprofdata>' -pass-remarks-analysis=memprof -S 2>&1 | FileCheck %s
; CHECK: remark: memprof.cc:5:10: frame: [[FOO:[0-9]+]] _Z3foov:1:10
; CHECK: remark: memprof.cc:5:10: inline call stack: [[FOO]]
@@ -8,6 +8,7 @@
; CHECK: remark: memprof.cc:9:12: frame: [[BAZ:[0-9]+]] _Z3bazv:3:13
; CHECK: remark: memprof.cc:9:12: inline call stack: [[BAR]],[[BAZ]]
+;--- a.ll
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
@@ -37,3 +38,116 @@ entry:
!8 = distinct !DISubprogram(name: "bar", linkageName: "_Z3barv", scope: !1, file: !1, line: 7, type: !5, scopeLine: 7, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !6)
!9 = !DILocation(line: 12, column: 13, scope: !10)
!10 = distinct !DISubprogram(name: "baz", linkageName: "_Z3bazv", scope: !1, file: !1, line: 9, type: !5, scopeLine: 9, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !6)
+
+;--- a.yaml
+---
+HeapProfileRecords:
+ - GUID: 0xd29e2fe34de9ae40
+ CallSites:
+ - Frames:
+ - { Function: 0xd29e2fe34de9ae40, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - GUID: 0xf129122801e64264
+ CallSites:
+ - Frames:
+ - { Function: 0xf129122801e64264, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - GUID: 0xdb956436e78dd5fa
+ AllocSites:
+ - Callstack:
+ - { Function: 0xdb956436e78dd5fa, LineOffset: 4, Column: 13, IsInlineFrame: false }
+ MemInfoBlock:
+ AllocCount: 1
+ TotalSize: 10
+ TotalLifetime: 0
+ TotalLifetimeAccessDensity: 20000
+ - Callstack:
+ - { Function: 0xdb956436e78dd5fa, LineOffset: 5, Column: 13, IsInlineFrame: false }
+ MemInfoBlock:
+ AllocCount: 1
+ TotalSize: 10
+ TotalLifetime: 200000
+ TotalLifetimeAccessDensity: 0
+ CallSites:
+ - Frames:
+ - { Function: 0xdb956436e78dd5fa, LineOffset: 6, Column: 13, IsInlineFrame: false }
+ - Frames:
+ - { Function: 0xdb956436e78dd5fa, LineOffset: 7, Column: 13, IsInlineFrame: false }
+ - Frames:
+ - { Function: 0xdb956436e78dd5fa, LineOffset: 8, Column: 13, IsInlineFrame: false }
+ - Frames:
+ - { Function: 0xdb956436e78dd5fa, LineOffset: 9, Column: 13, IsInlineFrame: false }
+ - Frames:
+ - { Function: 0xdb956436e78dd5fa, LineOffset: 31, Column: 15, IsInlineFrame: false }
+ - GUID: 0x251b60c9a8c4382a
+ CallSites:
+ - Frames:
+ - { Function: 0x251b60c9a8c4382a, LineOffset: 2, Column: 12, IsInlineFrame: false }
+ - Frames:
+ - { Function: 0x251b60c9a8c4382a, LineOffset: 3, Column: 10, IsInlineFrame: false }
+ - GUID: 0x7f8d88fcc70a347b
+ AllocSites:
+ - Callstack:
+ - { Function: 0x7f8d88fcc70a347b, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: 0xdb956436e78dd5fa, LineOffset: 6, Column: 13, IsInlineFrame: false }
+ MemInfoBlock:
+ AllocCount: 1
+ TotalSize: 10
+ TotalLifetime: 0
+ TotalLifetimeAccessDensity: 20000
+ - Callstack:
+ - { Function: 0x7f8d88fcc70a347b, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: 0xdb956436e78dd5fa, LineOffset: 7, Column: 13, IsInlineFrame: false }
+ MemInfoBlock:
+ AllocCount: 1
+ TotalSize: 10
+ TotalLifetime: 200000
+ TotalLifetimeAccessDensity: 0
+ - Callstack:
+ - { Function: 0x7f8d88fcc70a347b, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: 0xbfa73ad9b09bd18c, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: 0xf129122801e64264, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: 0xdb956436e78dd5fa, LineOffset: 8, Column: 13, IsInlineFrame: false }
+ MemInfoBlock:
+ AllocCount: 1
+ TotalSize: 10
+ TotalLifetime: 200000
+ TotalLifetimeAccessDensity: 0
+ - Callstack:
+ - { Function: 0x7f8d88fcc70a347b, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: 0xbfa73ad9b09bd18c, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: 0xd29e2fe34de9ae40, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: 0xdb956436e78dd5fa, LineOffset: 9, Column: 13, IsInlineFrame: false }
+ MemInfoBlock:
+ AllocCount: 1
+ TotalSize: 10
+ TotalLifetime: 200000
+ TotalLifetimeAccessDensity: 0
+ - Callstack:
+ - { Function: 0x7f8d88fcc70a347b, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: 0x251b60c9a8c4382a, LineOffset: 2, Column: 12, IsInlineFrame: false }
+ - { Function: 0x251b60c9a8c4382a, LineOffset: 3, Column: 10, IsInlineFrame: false }
+ - { Function: 0x251b60c9a8c4382a, LineOffset: 3, Column: 10, IsInlineFrame: false }
+ - { Function: 0x251b60c9a8c4382a, LineOffset: 3, Column: 10, IsInlineFrame: false }
+ - { Function: 0xdb956436e78dd5fa, LineOffset: 31, Column: 15, IsInlineFrame: false }
+ MemInfoBlock:
+ AllocCount: 1
+ TotalSize: 10
+ TotalLifetime: 200000
+ TotalLifetimeAccessDensity: 0
+ - Callstack:
+ - { Function: 0x7f8d88fcc70a347b, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: 0x251b60c9a8c4382a, LineOffset: 2, Column: 12, IsInlineFrame: false }
+ - { Function: 0x251b60c9a8c4382a, LineOffset: 3, Column: 10, IsInlineFrame: false }
+ - { Function: 0x251b60c9a8c4382a, LineOffset: 3, Column: 10, IsInlineFrame: false }
+ - { Function: 0x251b60c9a8c4382a, LineOffset: 3, Column: 10, IsInlineFrame: false }
+ - { Function: 0x251b60c9a8c4382a, LineOffset: 3, Column: 10, IsInlineFrame: false }
+ - { Function: 0xdb956436e78dd5fa, LineOffset: 31, Column: 15, IsInlineFrame: false }
+ MemInfoBlock:
+ AllocCount: 1
+ TotalSize: 10
+ TotalLifetime: 0
+ TotalLifetimeAccessDensity: 20000
+ - GUID: 0xbfa73ad9b09bd18c
+ CallSites:
+ - Frames:
+ - { Function: 0xbfa73ad9b09bd18c, LineOffset: 1, Column: 10, IsInlineFrame: false }
+...
>From 8412b917a5d7e0a0d78e1ea6c9f4876532f7b7b0 Mon Sep 17 00:00:00 2001
From: Ellis Hoag <ellishoag at meta.com>
Date: Mon, 17 Aug 2026 16:34:46 -0700
Subject: [PATCH 2/2] Replace GUIDs with names
---
.../PGOProfile/memprof-inline-call-stacks.ll | 86 +++++++++----------
1 file changed, 43 insertions(+), 43 deletions(-)
diff --git a/llvm/test/Transforms/PGOProfile/memprof-inline-call-stacks.ll b/llvm/test/Transforms/PGOProfile/memprof-inline-call-stacks.ll
index 8a1d0194daa05..072241348785b 100644
--- a/llvm/test/Transforms/PGOProfile/memprof-inline-call-stacks.ll
+++ b/llvm/test/Transforms/PGOProfile/memprof-inline-call-stacks.ll
@@ -42,25 +42,25 @@ entry:
;--- a.yaml
---
HeapProfileRecords:
- - GUID: 0xd29e2fe34de9ae40
+ - GUID: _Z3bazv
CallSites:
- Frames:
- - { Function: 0xd29e2fe34de9ae40, LineOffset: 1, Column: 10, IsInlineFrame: false }
- - GUID: 0xf129122801e64264
+ - { Function: _Z3bazv, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - GUID: _Z3barv
CallSites:
- Frames:
- - { Function: 0xf129122801e64264, LineOffset: 1, Column: 10, IsInlineFrame: false }
- - GUID: 0xdb956436e78dd5fa
+ - { Function: _Z3barv, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - GUID: main
AllocSites:
- Callstack:
- - { Function: 0xdb956436e78dd5fa, LineOffset: 4, Column: 13, IsInlineFrame: false }
+ - { Function: main, LineOffset: 4, Column: 13, IsInlineFrame: false }
MemInfoBlock:
AllocCount: 1
TotalSize: 10
TotalLifetime: 0
TotalLifetimeAccessDensity: 20000
- Callstack:
- - { Function: 0xdb956436e78dd5fa, LineOffset: 5, Column: 13, IsInlineFrame: false }
+ - { Function: main, LineOffset: 5, Column: 13, IsInlineFrame: false }
MemInfoBlock:
AllocCount: 1
TotalSize: 10
@@ -68,86 +68,86 @@ HeapProfileRecords:
TotalLifetimeAccessDensity: 0
CallSites:
- Frames:
- - { Function: 0xdb956436e78dd5fa, LineOffset: 6, Column: 13, IsInlineFrame: false }
+ - { Function: main, LineOffset: 6, Column: 13, IsInlineFrame: false }
- Frames:
- - { Function: 0xdb956436e78dd5fa, LineOffset: 7, Column: 13, IsInlineFrame: false }
+ - { Function: main, LineOffset: 7, Column: 13, IsInlineFrame: false }
- Frames:
- - { Function: 0xdb956436e78dd5fa, LineOffset: 8, Column: 13, IsInlineFrame: false }
+ - { Function: main, LineOffset: 8, Column: 13, IsInlineFrame: false }
- Frames:
- - { Function: 0xdb956436e78dd5fa, LineOffset: 9, Column: 13, IsInlineFrame: false }
+ - { Function: main, LineOffset: 9, Column: 13, IsInlineFrame: false }
- Frames:
- - { Function: 0xdb956436e78dd5fa, LineOffset: 31, Column: 15, IsInlineFrame: false }
- - GUID: 0x251b60c9a8c4382a
+ - { Function: main, LineOffset: 31, Column: 15, IsInlineFrame: false }
+ - GUID: _Z7recursej
CallSites:
- Frames:
- - { Function: 0x251b60c9a8c4382a, LineOffset: 2, Column: 12, IsInlineFrame: false }
+ - { Function: _Z7recursej, LineOffset: 2, Column: 12, IsInlineFrame: false }
- Frames:
- - { Function: 0x251b60c9a8c4382a, LineOffset: 3, Column: 10, IsInlineFrame: false }
- - GUID: 0x7f8d88fcc70a347b
+ - { Function: _Z7recursej, LineOffset: 3, Column: 10, IsInlineFrame: false }
+ - GUID: _Z3foov
AllocSites:
- Callstack:
- - { Function: 0x7f8d88fcc70a347b, LineOffset: 1, Column: 10, IsInlineFrame: false }
- - { Function: 0xdb956436e78dd5fa, LineOffset: 6, Column: 13, IsInlineFrame: false }
+ - { Function: _Z3foov, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: main, LineOffset: 6, Column: 13, IsInlineFrame: false }
MemInfoBlock:
AllocCount: 1
TotalSize: 10
TotalLifetime: 0
TotalLifetimeAccessDensity: 20000
- Callstack:
- - { Function: 0x7f8d88fcc70a347b, LineOffset: 1, Column: 10, IsInlineFrame: false }
- - { Function: 0xdb956436e78dd5fa, LineOffset: 7, Column: 13, IsInlineFrame: false }
+ - { Function: _Z3foov, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: main, LineOffset: 7, Column: 13, IsInlineFrame: false }
MemInfoBlock:
AllocCount: 1
TotalSize: 10
TotalLifetime: 200000
TotalLifetimeAccessDensity: 0
- Callstack:
- - { Function: 0x7f8d88fcc70a347b, LineOffset: 1, Column: 10, IsInlineFrame: false }
- - { Function: 0xbfa73ad9b09bd18c, LineOffset: 1, Column: 10, IsInlineFrame: false }
- - { Function: 0xf129122801e64264, LineOffset: 1, Column: 10, IsInlineFrame: false }
- - { Function: 0xdb956436e78dd5fa, LineOffset: 8, Column: 13, IsInlineFrame: false }
+ - { Function: _Z3foov, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: _Z4foo2v, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: _Z3barv, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: main, LineOffset: 8, Column: 13, IsInlineFrame: false }
MemInfoBlock:
AllocCount: 1
TotalSize: 10
TotalLifetime: 200000
TotalLifetimeAccessDensity: 0
- Callstack:
- - { Function: 0x7f8d88fcc70a347b, LineOffset: 1, Column: 10, IsInlineFrame: false }
- - { Function: 0xbfa73ad9b09bd18c, LineOffset: 1, Column: 10, IsInlineFrame: false }
- - { Function: 0xd29e2fe34de9ae40, LineOffset: 1, Column: 10, IsInlineFrame: false }
- - { Function: 0xdb956436e78dd5fa, LineOffset: 9, Column: 13, IsInlineFrame: false }
+ - { Function: _Z3foov, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: _Z4foo2v, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: _Z3bazv, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: main, LineOffset: 9, Column: 13, IsInlineFrame: false }
MemInfoBlock:
AllocCount: 1
TotalSize: 10
TotalLifetime: 200000
TotalLifetimeAccessDensity: 0
- Callstack:
- - { Function: 0x7f8d88fcc70a347b, LineOffset: 1, Column: 10, IsInlineFrame: false }
- - { Function: 0x251b60c9a8c4382a, LineOffset: 2, Column: 12, IsInlineFrame: false }
- - { Function: 0x251b60c9a8c4382a, LineOffset: 3, Column: 10, IsInlineFrame: false }
- - { Function: 0x251b60c9a8c4382a, LineOffset: 3, Column: 10, IsInlineFrame: false }
- - { Function: 0x251b60c9a8c4382a, LineOffset: 3, Column: 10, IsInlineFrame: false }
- - { Function: 0xdb956436e78dd5fa, LineOffset: 31, Column: 15, IsInlineFrame: false }
+ - { Function: _Z3foov, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: _Z7recursej, LineOffset: 2, Column: 12, IsInlineFrame: false }
+ - { Function: _Z7recursej, LineOffset: 3, Column: 10, IsInlineFrame: false }
+ - { Function: _Z7recursej, LineOffset: 3, Column: 10, IsInlineFrame: false }
+ - { Function: _Z7recursej, LineOffset: 3, Column: 10, IsInlineFrame: false }
+ - { Function: main, LineOffset: 31, Column: 15, IsInlineFrame: false }
MemInfoBlock:
AllocCount: 1
TotalSize: 10
TotalLifetime: 200000
TotalLifetimeAccessDensity: 0
- Callstack:
- - { Function: 0x7f8d88fcc70a347b, LineOffset: 1, Column: 10, IsInlineFrame: false }
- - { Function: 0x251b60c9a8c4382a, LineOffset: 2, Column: 12, IsInlineFrame: false }
- - { Function: 0x251b60c9a8c4382a, LineOffset: 3, Column: 10, IsInlineFrame: false }
- - { Function: 0x251b60c9a8c4382a, LineOffset: 3, Column: 10, IsInlineFrame: false }
- - { Function: 0x251b60c9a8c4382a, LineOffset: 3, Column: 10, IsInlineFrame: false }
- - { Function: 0x251b60c9a8c4382a, LineOffset: 3, Column: 10, IsInlineFrame: false }
- - { Function: 0xdb956436e78dd5fa, LineOffset: 31, Column: 15, IsInlineFrame: false }
+ - { Function: _Z3foov, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: _Z7recursej, LineOffset: 2, Column: 12, IsInlineFrame: false }
+ - { Function: _Z7recursej, LineOffset: 3, Column: 10, IsInlineFrame: false }
+ - { Function: _Z7recursej, LineOffset: 3, Column: 10, IsInlineFrame: false }
+ - { Function: _Z7recursej, LineOffset: 3, Column: 10, IsInlineFrame: false }
+ - { Function: _Z7recursej, LineOffset: 3, Column: 10, IsInlineFrame: false }
+ - { Function: main, LineOffset: 31, Column: 15, IsInlineFrame: false }
MemInfoBlock:
AllocCount: 1
TotalSize: 10
TotalLifetime: 0
TotalLifetimeAccessDensity: 20000
- - GUID: 0xbfa73ad9b09bd18c
+ - GUID: _Z4foo2v
CallSites:
- Frames:
- - { Function: 0xbfa73ad9b09bd18c, LineOffset: 1, Column: 10, IsInlineFrame: false }
+ - { Function: _Z4foo2v, LineOffset: 1, Column: 10, IsInlineFrame: false }
...
More information about the llvm-branch-commits
mailing list