[DebugInfo][RemoveDIs] Remove scoped-dbg-format-setter (#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.
This commit is contained in:
Jeremy Morse
2025-06-11 11:23:24 +01:00
committed by GitHub
parent ddef9ce8da
commit 354cfba520
10 changed files with 3 additions and 56 deletions

View File

@@ -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

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -40,7 +40,6 @@ public:
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 @@ public:
// 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"

View File

@@ -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);

View File

@@ -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();

View File

@@ -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())

View File

@@ -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,

View File

@@ -32,10 +32,6 @@ void registerToLLVMIRTranslation() {
if (!llvmModule)
return failure();
// When printing LLVM IR, we should convert the module to the debug info
// format that LLVM expects us to print.
// See https://llvm.org/docs/RemoveDIsDebugInfo.html
llvm::ScopedDbgInfoFormatSetter formatSetter(*llvmModule, true);
llvmModule->removeDebugIntrinsicDeclarations();
llvmModule->print(output, nullptr);
return success();