[llvm] 456eb4b - [PseudoProbe] Only emit discriminstor in FS-AFDO mode.
Hongtao Yu via llvm-commits
llvm-commits at lists.llvm.org
Tue May 16 21:35:36 PDT 2023
Author: Hongtao Yu
Date: 2023-05-16T21:35:17-07:00
New Revision: 456eb4b5bffe42d109c09b8706d4eeda8baa1f9a
URL: https://github.com/llvm/llvm-project/commit/456eb4b5bffe42d109c09b8706d4eeda8baa1f9a
DIFF: https://github.com/llvm/llvm-project/commit/456eb4b5bffe42d109c09b8706d4eeda8baa1f9a.diff
LOG: [PseudoProbe] Only emit discriminstor in FS-AFDO mode.
Despite previous effort {D148569} to avoid screwing up existing disrminator field, I'm still seeing some call probes getting a non-zero discriminator eventually in non-FS mode. It could be related to callsite merge. While they are investigated I'm disabling discriminator emission for non-FS mode. This avoids breaking the compatiblity with older tools like llvm-profgen and bolt.
Reviewed By: wenlei
Differential Revision: https://reviews.llvm.org/D150625
Added:
Modified:
llvm/lib/CodeGen/AsmPrinter/PseudoProbePrinter.cpp
Removed:
################################################################################
diff --git a/llvm/lib/CodeGen/AsmPrinter/PseudoProbePrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/PseudoProbePrinter.cpp
index 7f7eef9f10e2..59c3fa15885e 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<InlineSite, 8> InlineStack(llvm::reverse(ReversedInlineStack));
Asm->OutStreamer->emitPseudoProbe(Guid, Index, Type, Attr, Discriminator,
InlineStack, Asm->CurrentFnSym);
More information about the llvm-commits
mailing list