diff --git a/llvm/lib/Transforms/IPO/SampleProfileProbe.cpp b/llvm/lib/Transforms/IPO/SampleProfileProbe.cpp --- a/llvm/lib/Transforms/IPO/SampleProfileProbe.cpp +++ b/llvm/lib/Transforms/IPO/SampleProfileProbe.cpp @@ -350,24 +350,6 @@ auto *NMD = M->getNamedMetadata(PseudoProbeDescMetadataName); assert(NMD && "llvm.pseudo_probe_desc should be pre-created"); NMD->addOperand(MD); - - // Preserve a comdat group to hold all probes materialized later. This - // allows that when the function is considered dead and removed, the - // materialized probes are disposed too. - // Imported functions are defined in another module. They do not need - // the following handling since same care will be taken for them in their - // original module. The pseudo probes inserted into an imported functions - // above will naturally not be emitted since the imported function is free - // from object emission. However they will be emitted together with the - // inliner functions that the imported function is inlined into. We are not - // creating a comdat group for an import function since it's useless anyway. - if (!F.isDeclarationForLinker()) { - if (TM) { - auto Triple = TM->getTargetTriple(); - if (Triple.supportsCOMDAT() && TM->getFunctionSections()) - getOrCreateFunctionComdat(F, Triple); - } - } } PreservedAnalyses SampleProfileProbePass::run(Module &M, diff --git a/llvm/test/Transforms/SampleProfile/pseudo-probe-emit.ll b/llvm/test/Transforms/SampleProfile/pseudo-probe-emit.ll --- a/llvm/test/Transforms/SampleProfile/pseudo-probe-emit.ll +++ b/llvm/test/Transforms/SampleProfile/pseudo-probe-emit.ll @@ -19,6 +19,7 @@ define void @foo(i32 %x) !dbg !3 { bb0: %cmp = icmp eq i32 %x, 0 +; CHECK-IL-LABEL: void @foo(i32 %x) !dbg ![[#]] { ; CHECK-IL: call void @llvm.pseudoprobe(i64 [[#GUID:]], i64 1, i32 0, i64 -1), !dbg ![[#FAKELINE:]] ; CHECK-MIR: PSEUDO_PROBE [[#GUID:]], 1, 0, 0 ; CHECK-ASM: .pseudoprobe [[#GUID:]] 1 0 0 foo @@ -51,6 +52,7 @@ define internal void @foo2(ptr %f) !dbg !4 { entry: +; CHECK-IL-LABEL: void @foo2(ptr %f) !dbg ![[#]] { ; CHECK-IL: call void @llvm.pseudoprobe(i64 [[#GUID2:]], i64 1, i32 0, i64 -1) ; CHECK-MIR: PSEUDO_PROBE [[#GUID2:]], 1, 0, 0 ; CHECK-ASM: .pseudoprobe [[#GUID2:]] 1 0 0 foo2