diff --git a/llvm/lib/CodeGen/AsmPrinter/PseudoProbePrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/PseudoProbePrinter.cpp index 7f7eef9f10e2d..59c3fa15885e2 100644 --- a/llvm/lib/CodeGen/AsmPrinter/PseudoProbePrinter.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/PseudoProbePrinter.cpp @@ -45,9 +45,11 @@ void PseudoProbeHandler::emitPseudoProbe(uint64_t Guid, uint64_t Index, uint64_t Discriminator = 0; // For now only block probes have FS discriminators. See // MIRFSDiscriminator.cpp for more details. - if (DebugLoc && - !DILocation::isPseudoProbeDiscriminator(DebugLoc->getDiscriminator())) + if (EnableFSDiscriminator && DebugLoc && + (Type == (uint64_t)PseudoProbeType::Block)) Discriminator = DebugLoc->getDiscriminator(); + assert((EnableFSDiscriminator || Discriminator == 0) && + "Discriminator should not be set in non-FSAFDO mode"); SmallVector InlineStack(llvm::reverse(ReversedInlineStack)); Asm->OutStreamer->emitPseudoProbe(Guid, Index, Type, Attr, Discriminator, InlineStack, Asm->CurrentFnSym);