22
33; Make sure that we can undrift the MemProf profile and annotate the IR
44; accordingly.
5+ ;
6+ ; The IR was generated from:
7+ ;
8+ ; char *foo() { return ::new char[4]; }
9+ ; char *leaf() { return ::new char[4]; }
10+ ; char *middle() { return leaf(); }
11+ ; char *aaa() { return middle(); }
12+ ; char *bbb() { return middle(); }
13+ ;
14+ ; int main() {
15+ ; foo();
16+ ;
17+ ; char *a = aaa();
18+ ; char *b = bbb();
19+ ; a[0] = 'a';
20+ ; b[0] = 'b';
21+ ; delete[] a;
22+ ; sleep(10);
23+ ; delete[] b;
24+ ;
25+ ; return 0;
26+ ; }
527
628; RUN: split-file %s %t
729; RUN: llvm-profdata merge %t/memprof_undrift.yaml -o %t/memprof_undrift.memprofdata
6991; Function Attrs: nobuiltin allocsize(0)
7092declare ptr @_Znam(i64 noundef) #0
7193
72- ; Call hierarchy: leaf -> ::new
7394define dso_local ptr @_Z4leafv() !dbg !10 {
7495; CHECK-LABEL: @_Z4leafv()
7596entry:
7899 ret ptr %call, !dbg !12
79100}
80101
81- ; Call hierarchy: middle -> leaf -> ::new
82102define dso_local ptr @_Z6middlev() !dbg !13 {
83103; CHECK-LABEL: @_Z6middlev()
84104entry:
@@ -87,7 +107,6 @@ entry:
87107 ret ptr %call.i, !dbg !16
88108}
89109
90- ; Call hierarchy: aaa -> middle -> leaf -> ::new
91110define dso_local ptr @_Z3aaav() !dbg !17 {
92111; CHECK-LABEL: @_Z3aaav()
93112entry:
@@ -96,7 +115,6 @@ entry:
96115 ret ptr %call.i.i, !dbg !21
97116}
98117
99- ; Call hierarchy: bbb -> middle -> leaf -> ::new
100118define dso_local ptr @_Z3bbbv() !dbg !22 {
101119; CHECK-LABEL: @_Z3bbbv()
102120entry:
0 commit comments