Index: lib/Transforms/IPO/SampleProfile.cpp =================================================================== --- lib/Transforms/IPO/SampleProfile.cpp +++ lib/Transforms/IPO/SampleProfile.cpp @@ -1275,6 +1275,7 @@ clearFunctionData(); retval |= runOnFunction(F); } + M.setProfileSummary(Reader->getSummary().getMD(M.getContext())); return retval; } Index: test/Transforms/PGOProfile/Inputs/PR28219.sampleprof =================================================================== --- /dev/null +++ test/Transforms/PGOProfile/Inputs/PR28219.sampleprof @@ -0,0 +1,4 @@ +bar:100:3 + 1: 100 +foo:200:1 + 1: 200 Index: test/Transforms/PGOProfile/PR28219.ll =================================================================== --- test/Transforms/PGOProfile/PR28219.ll +++ test/Transforms/PGOProfile/PR28219.ll @@ -1,12 +1,16 @@ ; Test that we annotate entire program's summary and not just this module's ; RUN: llvm-profdata merge %S/Inputs/PR28219.proftext -o %t.profdata ; RUN: opt < %s -pgo-instr-use -pgo-test-profile-file=%t.profdata -S | FileCheck %s +; RUN: opt < %s -sample-profile -sample-profile-file=%S/Inputs/PR28219.sampleprof -S | FileCheck %s -define i32 @bar() { +define i32 @bar() #0 !dbg !1 { entry: - ret i32 1 + ret i32 1, !dbg !2 } + ; CHECK-DAG: {{![0-9]+}} = !{i32 1, !"ProfileSummary", {{![0-9]+}}} ; CHECK-DAG: {{![0-9]+}} = !{!"NumFunctions", i64 2} ; CHECK-DAG: {{![0-9]+}} = !{!"MaxFunctionCount", i64 3} +!1 = distinct !DISubprogram(name: "bar") +!2 = !DILocation(line: 2, scope: !2)