[llvm] [DebugInfo][RemoveDIs] Remove scoped-dbg-format-setter (PR #143450)
Jeremy Morse via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 9 15:19:41 PDT 2025
https://github.com/jmorse created https://github.com/llvm/llvm-project/pull/143450
This was a utility for flipping between intrinsic and debug record mode -- we don't need it any more. The "IsNewDbgInfoFormat" should be true everywhere.
>From 1f1ed364ae360ba024612bb11bba4cbbfe44e872 Mon Sep 17 00:00:00 2001
From: Jeremy Morse <jeremy.morse at sony.com>
Date: Thu, 15 May 2025 14:30:13 +0100
Subject: [PATCH] [DebugInfo][RemoveDIs] Remove scoped-dbg-format-setter
This was a utility for flipping between intrinsic and debug record mode --
we don't need it any more.
---
.../include/llvm/IR/DebugProgramInstruction.h | 19 -------------------
llvm/include/llvm/IR/PassManagerImpl.h | 4 ----
llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp | 8 ++------
llvm/lib/CodeGen/MIRPrinter.cpp | 6 ------
llvm/lib/IR/IRPrintingPasses.cpp | 3 ---
llvm/lib/IR/LegacyPassManager.cpp | 5 -----
llvm/lib/IRPrinter/IRPrintingPasses.cpp | 3 ---
llvm/lib/Linker/IRMover.cpp | 3 ---
.../Transforms/IPO/ThinLTOBitcodeWriter.cpp | 4 +---
9 files changed, 3 insertions(+), 52 deletions(-)
diff --git a/llvm/include/llvm/IR/DebugProgramInstruction.h b/llvm/include/llvm/IR/DebugProgramInstruction.h
index 1436677e5a085..e0292c2b8d2d2 100644
--- a/llvm/include/llvm/IR/DebugProgramInstruction.h
+++ b/llvm/include/llvm/IR/DebugProgramInstruction.h
@@ -692,25 +692,6 @@ getDbgRecordRange(DbgMarker *DebugMarker) {
DEFINE_ISA_CONVERSION_FUNCTIONS(DbgRecord, LLVMDbgRecordRef)
-/// Used to temporarily set the debug info format of a function, module, or
-/// basic block for the duration of this object's lifetime, after which the
-/// prior state will be restored.
-template <typename T> class ScopedDbgInfoFormatSetter {
- T &Obj;
- bool OldState;
-
-public:
- ScopedDbgInfoFormatSetter(T &Obj, bool NewState)
- : Obj(Obj), OldState(Obj.IsNewDbgInfoFormat) {
- Obj.setIsNewDbgInfoFormat(NewState);
- }
- ~ScopedDbgInfoFormatSetter() { Obj.setIsNewDbgInfoFormat(OldState); }
-};
-
-template <typename T>
-ScopedDbgInfoFormatSetter(T &Obj,
- bool NewState) -> ScopedDbgInfoFormatSetter<T>;
-
} // namespace llvm
#endif // LLVM_IR_DEBUGPROGRAMINSTRUCTION_H
diff --git a/llvm/include/llvm/IR/PassManagerImpl.h b/llvm/include/llvm/IR/PassManagerImpl.h
index fe7b35fbce2c5..ade13f10c54e4 100644
--- a/llvm/include/llvm/IR/PassManagerImpl.h
+++ b/llvm/include/llvm/IR/PassManagerImpl.h
@@ -63,10 +63,6 @@ PreservedAnalyses PassManager<IRUnitT, AnalysisManagerT, ExtraArgTs...>::run(
detail::getAnalysisResult<PassInstrumentationAnalysis>(
AM, IR, std::tuple<ExtraArgTs...>(ExtraArgs...));
- // RemoveDIs: if requested, convert debug-info to DbgRecord representation
- // for duration of these passes.
- ScopedDbgInfoFormatSetter FormatSetter(IR, true);
-
StackTraceEntry Entry(PI, IR);
for (auto &Pass : Passes) {
Entry.setPass(&*Pass);
diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp
index fb393d33df3b2..e48f735ded831 100644
--- a/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp
+++ b/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp
@@ -19,9 +19,7 @@
using namespace llvm;
PreservedAnalyses BitcodeWriterPass::run(Module &M, ModuleAnalysisManager &AM) {
- ScopedDbgInfoFormatSetter FormatSetter(M, M.IsNewDbgInfoFormat);
- if (M.IsNewDbgInfoFormat)
- M.removeDebugIntrinsicDeclarations();
+ M.removeDebugIntrinsicDeclarations();
const ModuleSummaryIndex *Index =
EmitSummaryIndex ? &(AM.getResult<ModuleSummaryIndexAnalysis>(M))
@@ -51,9 +49,7 @@ namespace {
StringRef getPassName() const override { return "Bitcode Writer"; }
bool runOnModule(Module &M) override {
- ScopedDbgInfoFormatSetter FormatSetter(M, M.IsNewDbgInfoFormat);
- if (M.IsNewDbgInfoFormat)
- M.removeDebugIntrinsicDeclarations();
+ M.removeDebugIntrinsicDeclarations();
WriteBitcodeToFile(M, OS, ShouldPreserveUseListOrder, /*Index=*/nullptr,
/*EmitModuleHash=*/false);
diff --git a/llvm/lib/CodeGen/MIRPrinter.cpp b/llvm/lib/CodeGen/MIRPrinter.cpp
index 34ac0794f901f..7710b503facc3 100644
--- a/llvm/lib/CodeGen/MIRPrinter.cpp
+++ b/llvm/lib/CodeGen/MIRPrinter.cpp
@@ -965,17 +965,11 @@ void MIRFormatter::printIRValue(raw_ostream &OS, const Value &V,
}
void llvm::printMIR(raw_ostream &OS, const Module &M) {
- ScopedDbgInfoFormatSetter FormatSetter(const_cast<Module &>(M), true);
-
yaml::Output Out(OS);
Out << const_cast<Module &>(M);
}
void llvm::printMIR(raw_ostream &OS, const MachineModuleInfo &MMI,
const MachineFunction &MF) {
- // RemoveDIs: as there's no textual form for DbgRecords yet, print debug-info
- // in dbg.value format.
- ScopedDbgInfoFormatSetter FormatSetter(
- const_cast<Function &>(MF.getFunction()), true);
printMF(OS, MMI, MF);
}
diff --git a/llvm/lib/IR/IRPrintingPasses.cpp b/llvm/lib/IR/IRPrintingPasses.cpp
index eb35377d0fb23..5c062800198fc 100644
--- a/llvm/lib/IR/IRPrintingPasses.cpp
+++ b/llvm/lib/IR/IRPrintingPasses.cpp
@@ -40,7 +40,6 @@ class PrintModulePassWrapper : public ModulePass {
ShouldPreserveUseListOrder(ShouldPreserveUseListOrder) {}
bool runOnModule(Module &M) override {
- ScopedDbgInfoFormatSetter FormatSetter(M, true);
// Remove intrinsic declarations when printing in the new format.
// TODO: consider removing this as debug-intrinsics are gone.
M.removeDebugIntrinsicDeclarations();
@@ -84,8 +83,6 @@ class PrintFunctionPassWrapper : public FunctionPass {
// This pass just prints a banner followed by the function as it's processed.
bool runOnFunction(Function &F) override {
- ScopedDbgInfoFormatSetter FormatSetter(F, true);
-
if (isFunctionInPrintList(F.getName())) {
if (forcePrintModuleIR())
OS << Banner << " (function: " << F.getName() << ")\n"
diff --git a/llvm/lib/IR/LegacyPassManager.cpp b/llvm/lib/IR/LegacyPassManager.cpp
index fd69e309cdf10..c8f1606ea06cb 100644
--- a/llvm/lib/IR/LegacyPassManager.cpp
+++ b/llvm/lib/IR/LegacyPassManager.cpp
@@ -526,11 +526,6 @@ bool PassManagerImpl::run(Module &M) {
dumpArguments();
dumpPasses();
- // RemoveDIs: if a command line flag is given, convert to the
- // DbgVariableRecord representation of debug-info for the duration of these
- // passes.
- ScopedDbgInfoFormatSetter FormatSetter(M, true);
-
for (ImmutablePass *ImPass : getImmutablePasses())
Changed |= ImPass->doInitialization(M);
diff --git a/llvm/lib/IRPrinter/IRPrintingPasses.cpp b/llvm/lib/IRPrinter/IRPrintingPasses.cpp
index 5fd6a094fa57b..81ad284ea1642 100644
--- a/llvm/lib/IRPrinter/IRPrintingPasses.cpp
+++ b/llvm/lib/IRPrinter/IRPrintingPasses.cpp
@@ -32,7 +32,6 @@ PrintModulePass::PrintModulePass(raw_ostream &OS, const std::string &Banner,
EmitSummaryIndex(EmitSummaryIndex) {}
PreservedAnalyses PrintModulePass::run(Module &M, ModuleAnalysisManager &AM) {
- ScopedDbgInfoFormatSetter FormatSetter(M, true);
// Remove intrinsic declarations when printing in the new format.
// TODO: consider removing this now that debug intrinsics are gone.
M.removeDebugIntrinsicDeclarations();
@@ -72,8 +71,6 @@ PrintFunctionPass::PrintFunctionPass(raw_ostream &OS, const std::string &Banner)
PreservedAnalyses PrintFunctionPass::run(Function &F,
FunctionAnalysisManager &) {
- ScopedDbgInfoFormatSetter FormatSetter(F, true);
-
if (isFunctionInPrintList(F.getName())) {
if (forcePrintModuleIR())
OS << Banner << " (function: " << F.getName() << ")\n" << *F.getParent();
diff --git a/llvm/lib/Linker/IRMover.cpp b/llvm/lib/Linker/IRMover.cpp
index 4dd5ae81c89c1..a449185b2b9ba 100644
--- a/llvm/lib/Linker/IRMover.cpp
+++ b/llvm/lib/Linker/IRMover.cpp
@@ -1444,9 +1444,6 @@ Error IRLinker::run() {
if (Error Err = SrcM->getMaterializer()->materializeMetadata())
return Err;
- // Convert source module to match dest for the duration of the link.
- ScopedDbgInfoFormatSetter FormatSetter(*SrcM, DstM.IsNewDbgInfoFormat);
-
// Inherit the target data from the source module if the destination
// module doesn't have one already.
if (DstM.getDataLayout().isDefault())
diff --git a/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp b/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
index 06f5d78d77e01..e276376f21583 100644
--- a/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
+++ b/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
@@ -584,9 +584,7 @@ llvm::ThinLTOBitcodeWriterPass::run(Module &M, ModuleAnalysisManager &AM) {
FunctionAnalysisManager &FAM =
AM.getResult<FunctionAnalysisManagerModuleProxy>(M).getManager();
- ScopedDbgInfoFormatSetter FormatSetter(M, M.IsNewDbgInfoFormat);
- if (M.IsNewDbgInfoFormat)
- M.removeDebugIntrinsicDeclarations();
+ M.removeDebugIntrinsicDeclarations();
bool Changed = writeThinLTOBitcode(
OS, ThinLinkOS,
More information about the llvm-commits
mailing list