[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