[llvm] [DebugInfo][RemoveDIs] Rip out the UseNewDbgInfoFormat flag (PR #143207)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 6 14:12:43 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-analysis
Author: Jeremy Morse (jmorse)
<details>
<summary>Changes</summary>
Start removing debug intrinsics support -- starting with the flag that controls production of their replacement, debug records. This patch removes the command-line-flag and with it the ability to switch back to intrinsics. The module / function / block level "IsNewDbgInfoFormat" flags get hardcoded to true, I'll to incrementally remove things that depend on those flags.
---
Patch is 33.01 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/143207.diff
23 Files Affected:
- (modified) llvm/include/llvm/IR/BasicBlock.h (+1-2)
- (modified) llvm/include/llvm/IR/PassManagerImpl.h (+1-3)
- (modified) llvm/lib/AsmParser/LLParser.cpp (+1-3)
- (modified) llvm/lib/Bitcode/Reader/BitcodeReader.cpp (+3-5)
- (modified) llvm/lib/Bitcode/Writer/BitcodeWriter.cpp (-2)
- (modified) llvm/lib/CodeGen/MIRPrinter.cpp (+2-5)
- (modified) llvm/lib/IR/BasicBlock.cpp (+1-25)
- (modified) llvm/lib/IR/Function.cpp (+1-3)
- (modified) llvm/lib/IR/IRPrintingPasses.cpp (+4-8)
- (modified) llvm/lib/IR/Instruction.cpp (-2)
- (modified) llvm/lib/IR/LegacyPassManager.cpp (+1-2)
- (modified) llvm/lib/IR/Module.cpp (+1-3)
- (modified) llvm/lib/IRPrinter/IRPrintingPasses.cpp (+4-8)
- (modified) llvm/lib/LTO/LTO.cpp (+1-3)
- (modified) llvm/lib/Transforms/Coroutines/CoroFrame.cpp (+12-27)
- (modified) llvm/lib/Transforms/Utils/Local.cpp (+4-14)
- (modified) llvm/tools/llvm-as/llvm-as.cpp (+2-5)
- (modified) llvm/tools/llvm-dis/llvm-dis.cpp (+2-5)
- (modified) llvm/tools/llvm-link/llvm-link.cpp (+2-4)
- (modified) llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp (-3)
- (modified) llvm/unittests/IR/DebugInfoTest.cpp (+19-42)
- (modified) llvm/unittests/IR/InstructionsTest.cpp (+2-5)
- (modified) llvm/unittests/IR/ValueTest.cpp (+1-5)
``````````diff
diff --git a/llvm/include/llvm/IR/BasicBlock.h b/llvm/include/llvm/IR/BasicBlock.h
index b5ad0ded2464b..07444cd6779e1 100644
--- a/llvm/include/llvm/IR/BasicBlock.h
+++ b/llvm/include/llvm/IR/BasicBlock.h
@@ -87,8 +87,7 @@ class BasicBlock final : public Value, // Basic blocks are data objects also
/// Convert variable location debugging information stored in dbg.value
/// intrinsics into DbgMarkers / DbgRecords. Deletes all dbg.values in
- /// the process and sets IsNewDbgInfoFormat = true. Only takes effect if
- /// the UseNewDbgInfoFormat LLVM command line option is given.
+ /// the process and sets IsNewDbgInfoFormat = true.
LLVM_ABI void convertToNewDbgValues();
/// Convert variable location debugging information stored in DbgMarkers and
diff --git a/llvm/include/llvm/IR/PassManagerImpl.h b/llvm/include/llvm/IR/PassManagerImpl.h
index 04ccbbbccb428..fe7b35fbce2c5 100644
--- a/llvm/include/llvm/IR/PassManagerImpl.h
+++ b/llvm/include/llvm/IR/PassManagerImpl.h
@@ -22,8 +22,6 @@
#include "llvm/Support/Compiler.h"
#include "llvm/Support/PrettyStackTrace.h"
-LLVM_ABI extern llvm::cl::opt<bool> UseNewDbgInfoFormat;
-
namespace llvm {
template <typename IRUnitT, typename AnalysisManagerT, typename... ExtraArgTs>
@@ -67,7 +65,7 @@ PreservedAnalyses PassManager<IRUnitT, AnalysisManagerT, ExtraArgTs...>::run(
// RemoveDIs: if requested, convert debug-info to DbgRecord representation
// for duration of these passes.
- ScopedDbgInfoFormatSetter FormatSetter(IR, UseNewDbgInfoFormat);
+ ScopedDbgInfoFormatSetter FormatSetter(IR, true);
StackTraceEntry Entry(PI, IR);
for (auto &Pass : Passes) {
diff --git a/llvm/lib/AsmParser/LLParser.cpp b/llvm/lib/AsmParser/LLParser.cpp
index 23db009654f4f..b933d240c4d27 100644
--- a/llvm/lib/AsmParser/LLParser.cpp
+++ b/llvm/lib/AsmParser/LLParser.cpp
@@ -64,8 +64,6 @@ static cl::opt<bool> AllowIncompleteIR(
"Allow incomplete IR on a best effort basis (references to unknown "
"metadata will be dropped)"));
-LLVM_ABI extern llvm::cl::opt<bool> UseNewDbgInfoFormat;
-
static std::string getTypeString(Type *T) {
std::string Result;
raw_string_ostream Tmp(Result);
@@ -443,7 +441,7 @@ bool LLParser::validateEndOfModule(bool UpgradeDebugInfo) {
UpgradeNVVMAnnotations(*M);
UpgradeSectionAttributes(*M);
- M->setIsNewDbgInfoFormat(UseNewDbgInfoFormat);
+ M->setIsNewDbgInfoFormat(true);
if (!Slots)
return false;
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
index 105edb943eb7f..31129b7e5cf77 100644
--- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
@@ -101,8 +101,6 @@ static cl::opt<bool> ExpandConstantExprs(
cl::desc(
"Expand constant expressions to instructions for testing purposes"));
-LLVM_ABI extern cl::opt<bool> UseNewDbgInfoFormat;
-
namespace {
enum {
@@ -4481,9 +4479,9 @@ Error BitcodeReader::parseGlobalIndirectSymbolRecord(
Error BitcodeReader::parseModule(uint64_t ResumeBit,
bool ShouldLazyLoadMetadata,
ParserCallbacks Callbacks) {
- // In preparation for the deletion of debug-intrinsics, don't allow module
- // loading to escape intrinsics being autoupgraded to debug records.
- TheModule->IsNewDbgInfoFormat = UseNewDbgInfoFormat;
+ // Don't allow modules to use debug-intrinsics: autoupgrading them is now
+ // mandatory.
+ TheModule->IsNewDbgInfoFormat = true;
this->ValueTypeCallback = std::move(Callbacks.ValueType);
if (ResumeBit) {
diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
index fad8ebfad9f9a..628b939af19ce 100644
--- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
+++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
@@ -122,8 +122,6 @@ namespace llvm {
extern FunctionSummary::ForceSummaryHotnessType ForceSummaryEdgesCold;
}
-LLVM_ABI extern llvm::cl::opt<bool> UseNewDbgInfoFormat;
-
namespace {
/// These are manifest constants used by the bitcode writer. They do not need to
diff --git a/llvm/lib/CodeGen/MIRPrinter.cpp b/llvm/lib/CodeGen/MIRPrinter.cpp
index b7b8f66736a49..34ac0794f901f 100644
--- a/llvm/lib/CodeGen/MIRPrinter.cpp
+++ b/llvm/lib/CodeGen/MIRPrinter.cpp
@@ -70,8 +70,6 @@ static cl::opt<bool> SimplifyMIR(
static cl::opt<bool> PrintLocations("mir-debug-loc", cl::Hidden, cl::init(true),
cl::desc("Print MIR debug-locations"));
-extern cl::opt<bool> UseNewDbgInfoFormat;
-
namespace {
/// This structure describes how to print out stack object references.
@@ -967,8 +965,7 @@ void MIRFormatter::printIRValue(raw_ostream &OS, const Value &V,
}
void llvm::printMIR(raw_ostream &OS, const Module &M) {
- ScopedDbgInfoFormatSetter FormatSetter(const_cast<Module &>(M),
- UseNewDbgInfoFormat);
+ ScopedDbgInfoFormatSetter FormatSetter(const_cast<Module &>(M), true);
yaml::Output Out(OS);
Out << const_cast<Module &>(M);
@@ -979,6 +976,6 @@ void llvm::printMIR(raw_ostream &OS, const MachineModuleInfo &MMI,
// RemoveDIs: as there's no textual form for DbgRecords yet, print debug-info
// in dbg.value format.
ScopedDbgInfoFormatSetter FormatSetter(
- const_cast<Function &>(MF.getFunction()), UseNewDbgInfoFormat);
+ const_cast<Function &>(MF.getFunction()), true);
printMF(OS, MMI, MF);
}
diff --git a/llvm/lib/IR/BasicBlock.cpp b/llvm/lib/IR/BasicBlock.cpp
index 628f062580fa5..ed11ea06398f1 100644
--- a/llvm/lib/IR/BasicBlock.cpp
+++ b/llvm/lib/IR/BasicBlock.cpp
@@ -31,30 +31,6 @@ using namespace llvm;
#define DEBUG_TYPE "ir"
STATISTIC(NumInstrRenumberings, "Number of renumberings across all blocks");
-// This cl-opt exists to control whether variable-location information is
-// produced using intrinsics, or whether DbgRecords are produced. However,
-// it's imminently being phased out, so give it a flag-name that is very
-// unlikely to be used anywhere.
-//
-// If you find yourself needing to use this flag for any period longer than
-// five minutes, please revert the patch making this change, and make contact
-// in this discourse post, where we can discuss any further transition work
-// that might be needed to remove debug intrinsics.
-//
-// https://discourse.llvm.org/t/psa-ir-output-changing-from-debug-intrinsics-to-debug-records/79578
-LLVM_ABI cl::opt<bool>
- UseNewDbgInfoFormat("dont-pass-this-flag-please-experimental-debuginfo",
- cl::Hidden, cl::init(true));
-
-// This cl-opt collects the --experimental-debuginfo-iterators flag and then
-// does nothing with it (because the it gets stored into an otherwise unused
-// cl-opt), so that we can disable debug-intrinsic production without
-// immediately modifying lots of tests. If your tests break because of this
-// change, please see the next comment up.
-static cl::opt<bool> DeliberatelyUnseenDbgInfoFlag(
- "experimental-debuginfo-iterators", cl::Hidden,
- cl::init(true));
-
DbgMarker *BasicBlock::createMarker(Instruction *I) {
assert(IsNewDbgInfoFormat &&
"Tried to create a marker in a non new debug-info block!");
@@ -187,7 +163,7 @@ template class llvm::SymbolTableListTraits<
BasicBlock::BasicBlock(LLVMContext &C, const Twine &Name, Function *NewParent,
BasicBlock *InsertBefore)
: Value(Type::getLabelTy(C), Value::BasicBlockVal),
- IsNewDbgInfoFormat(UseNewDbgInfoFormat), Parent(nullptr) {
+ IsNewDbgInfoFormat(true), Parent(nullptr) {
if (NewParent)
insertInto(NewParent, InsertBefore);
diff --git a/llvm/lib/IR/Function.cpp b/llvm/lib/IR/Function.cpp
index dfffbbfcf5d2a..63665d837c398 100644
--- a/llvm/lib/IR/Function.cpp
+++ b/llvm/lib/IR/Function.cpp
@@ -65,8 +65,6 @@ static cl::opt<int> NonGlobalValueMaxNameSize(
"non-global-value-max-name-size", cl::Hidden, cl::init(1024),
cl::desc("Maximum size for the name of non-global values."));
-LLVM_ABI extern cl::opt<bool> UseNewDbgInfoFormat;
-
void Function::renumberBlocks() {
validateBlockNumbers();
@@ -492,7 +490,7 @@ Function::Function(FunctionType *Ty, LinkageTypes Linkage, unsigned AddrSpace,
const Twine &name, Module *ParentModule)
: GlobalObject(Ty, Value::FunctionVal, AllocMarker, Linkage, name,
computeAddrSpace(AddrSpace, ParentModule)),
- NumArgs(Ty->getNumParams()), IsNewDbgInfoFormat(UseNewDbgInfoFormat) {
+ NumArgs(Ty->getNumParams()), IsNewDbgInfoFormat(true) {
assert(FunctionType::isValidReturnType(getReturnType()) &&
"invalid return type");
setGlobalObjectSubClassData(0);
diff --git a/llvm/lib/IR/IRPrintingPasses.cpp b/llvm/lib/IR/IRPrintingPasses.cpp
index a26bb0f5af012..eb35377d0fb23 100644
--- a/llvm/lib/IR/IRPrintingPasses.cpp
+++ b/llvm/lib/IR/IRPrintingPasses.cpp
@@ -24,8 +24,6 @@
using namespace llvm;
-LLVM_ABI extern cl::opt<bool> UseNewDbgInfoFormat;
-
namespace {
class PrintModulePassWrapper : public ModulePass {
@@ -42,12 +40,10 @@ class PrintModulePassWrapper : public ModulePass {
ShouldPreserveUseListOrder(ShouldPreserveUseListOrder) {}
bool runOnModule(Module &M) override {
- ScopedDbgInfoFormatSetter FormatSetter(M, UseNewDbgInfoFormat);
+ ScopedDbgInfoFormatSetter FormatSetter(M, true);
// Remove intrinsic declarations when printing in the new format.
- // TODO: Move this into Module::setIsNewDbgInfoFormat when we're ready to
- // update test output.
- if (UseNewDbgInfoFormat)
- M.removeDebugIntrinsicDeclarations();
+ // TODO: consider removing this as debug-intrinsics are gone.
+ M.removeDebugIntrinsicDeclarations();
if (llvm::isFunctionInPrintList("*")) {
if (!Banner.empty())
@@ -88,7 +84,7 @@ 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, UseNewDbgInfoFormat);
+ ScopedDbgInfoFormatSetter FormatSetter(F, true);
if (isFunctionInPrintList(F.getName())) {
if (forcePrintModuleIR())
diff --git a/llvm/lib/IR/Instruction.cpp b/llvm/lib/IR/Instruction.cpp
index 18ce16522af90..109d516c61b7c 100644
--- a/llvm/lib/IR/Instruction.cpp
+++ b/llvm/lib/IR/Instruction.cpp
@@ -130,8 +130,6 @@ BasicBlock::iterator Instruction::insertInto(BasicBlock *ParentBB,
return getIterator();
}
-LLVM_ABI extern cl::opt<bool> UseNewDbgInfoFormat;
-
void Instruction::insertBefore(BasicBlock &BB,
InstListType::iterator InsertPos) {
assert(!DebugMarker);
diff --git a/llvm/lib/IR/LegacyPassManager.cpp b/llvm/lib/IR/LegacyPassManager.cpp
index 110636b2e9032..fd69e309cdf10 100644
--- a/llvm/lib/IR/LegacyPassManager.cpp
+++ b/llvm/lib/IR/LegacyPassManager.cpp
@@ -32,7 +32,6 @@
using namespace llvm;
-LLVM_ABI extern cl::opt<bool> UseNewDbgInfoFormat;
// See PassManagers.h for Pass Manager infrastructure overview.
//===----------------------------------------------------------------------===//
@@ -530,7 +529,7 @@ bool PassManagerImpl::run(Module &M) {
// 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, UseNewDbgInfoFormat);
+ ScopedDbgInfoFormatSetter FormatSetter(M, true);
for (ImmutablePass *ImPass : getImmutablePasses())
Changed |= ImPass->doInitialization(M);
diff --git a/llvm/lib/IR/Module.cpp b/llvm/lib/IR/Module.cpp
index 132a8c8d19d8a..0a47f98619691 100644
--- a/llvm/lib/IR/Module.cpp
+++ b/llvm/lib/IR/Module.cpp
@@ -54,8 +54,6 @@
using namespace llvm;
-LLVM_ABI extern cl::opt<bool> UseNewDbgInfoFormat;
-
//===----------------------------------------------------------------------===//
// Methods to implement the globals and functions lists.
//
@@ -74,7 +72,7 @@ template class LLVM_EXPORT_TEMPLATE llvm::SymbolTableListTraits<GlobalIFunc>;
Module::Module(StringRef MID, LLVMContext &C)
: Context(C), ValSymTab(std::make_unique<ValueSymbolTable>(-1)),
ModuleID(std::string(MID)), SourceFileName(std::string(MID)),
- IsNewDbgInfoFormat(UseNewDbgInfoFormat) {
+ IsNewDbgInfoFormat(true) {
Context.addModule(this);
}
diff --git a/llvm/lib/IRPrinter/IRPrintingPasses.cpp b/llvm/lib/IRPrinter/IRPrintingPasses.cpp
index d6bd6c32002da..5fd6a094fa57b 100644
--- a/llvm/lib/IRPrinter/IRPrintingPasses.cpp
+++ b/llvm/lib/IRPrinter/IRPrintingPasses.cpp
@@ -23,8 +23,6 @@
using namespace llvm;
-LLVM_ABI extern cl::opt<bool> UseNewDbgInfoFormat;
-
PrintModulePass::PrintModulePass() : OS(dbgs()) {}
PrintModulePass::PrintModulePass(raw_ostream &OS, const std::string &Banner,
bool ShouldPreserveUseListOrder,
@@ -34,12 +32,10 @@ PrintModulePass::PrintModulePass(raw_ostream &OS, const std::string &Banner,
EmitSummaryIndex(EmitSummaryIndex) {}
PreservedAnalyses PrintModulePass::run(Module &M, ModuleAnalysisManager &AM) {
- ScopedDbgInfoFormatSetter FormatSetter(M, UseNewDbgInfoFormat);
+ ScopedDbgInfoFormatSetter FormatSetter(M, true);
// Remove intrinsic declarations when printing in the new format.
- // TODO: Move this into Module::setIsNewDbgInfoFormat when we're ready to
- // update test output.
- if (UseNewDbgInfoFormat)
- M.removeDebugIntrinsicDeclarations();
+ // TODO: consider removing this now that debug intrinsics are gone.
+ M.removeDebugIntrinsicDeclarations();
if (llvm::isFunctionInPrintList("*")) {
if (!Banner.empty())
@@ -76,7 +72,7 @@ PrintFunctionPass::PrintFunctionPass(raw_ostream &OS, const std::string &Banner)
PreservedAnalyses PrintFunctionPass::run(Function &F,
FunctionAnalysisManager &) {
- ScopedDbgInfoFormatSetter FormatSetter(F, UseNewDbgInfoFormat);
+ ScopedDbgInfoFormatSetter FormatSetter(F, true);
if (isFunctionInPrintList(F.getName())) {
if (forcePrintModuleIR())
diff --git a/llvm/lib/LTO/LTO.cpp b/llvm/lib/LTO/LTO.cpp
index ba120a0566834..df395073359cf 100644
--- a/llvm/lib/LTO/LTO.cpp
+++ b/llvm/lib/LTO/LTO.cpp
@@ -70,8 +70,6 @@ using namespace object;
#define DEBUG_TYPE "lto"
-LLVM_ABI extern cl::opt<bool> UseNewDbgInfoFormat;
-
static cl::opt<bool>
DumpThinCGSCCs("dump-thin-cg-sccs", cl::init(false), cl::Hidden,
cl::desc("Dump the SCCs in the ThinLTO index's callgraph"));
@@ -602,7 +600,7 @@ LTO::RegularLTOState::RegularLTOState(unsigned ParallelCodeGenParallelismLevel,
: ParallelCodeGenParallelismLevel(ParallelCodeGenParallelismLevel),
Ctx(Conf), CombinedModule(std::make_unique<Module>("ld-temp.o", Ctx)),
Mover(std::make_unique<IRMover>(*CombinedModule)) {
- CombinedModule->IsNewDbgInfoFormat = UseNewDbgInfoFormat;
+ CombinedModule->IsNewDbgInfoFormat = true;
}
LTO::ThinLTOState::ThinLTOState(ThinBackend BackendParam)
diff --git a/llvm/lib/Transforms/Coroutines/CoroFrame.cpp b/llvm/lib/Transforms/Coroutines/CoroFrame.cpp
index 53d78edda2e9f..26843ebc71666 100644
--- a/llvm/lib/Transforms/Coroutines/CoroFrame.cpp
+++ b/llvm/lib/Transforms/Coroutines/CoroFrame.cpp
@@ -41,8 +41,6 @@
using namespace llvm;
-extern cl::opt<bool> UseNewDbgInfoFormat;
-
#define DEBUG_TYPE "coro-frame"
namespace {
@@ -842,18 +840,12 @@ static void buildFrameDebugInfo(Function &F, coro::Shape &Shape,
DILocation::get(DIS->getContext(), LineNum, /*Column=*/1, DIS);
assert(FrameDIVar->isValidLocationForIntrinsic(DILoc));
- if (UseNewDbgInfoFormat) {
- DbgVariableRecord *NewDVR =
- new DbgVariableRecord(ValueAsMetadata::get(Shape.FramePtr), FrameDIVar,
- DBuilder.createExpression(), DILoc,
- DbgVariableRecord::LocationType::Declare);
- BasicBlock::iterator It = Shape.getInsertPtAfterFramePtr();
- It->getParent()->insertDbgRecordBefore(NewDVR, It);
- } else {
- DBuilder.insertDeclare(Shape.FramePtr, FrameDIVar,
- DBuilder.createExpression(), DILoc,
- Shape.getInsertPtAfterFramePtr());
- }
+ DbgVariableRecord *NewDVR =
+ new DbgVariableRecord(ValueAsMetadata::get(Shape.FramePtr), FrameDIVar,
+ DBuilder.createExpression(), DILoc,
+ DbgVariableRecord::LocationType::Declare);
+ BasicBlock::iterator It = Shape.getInsertPtAfterFramePtr();
+ It->getParent()->insertDbgRecordBefore(NewDVR, It);
}
// Build a struct that will keep state for an active coroutine.
@@ -1136,19 +1128,12 @@ static void insertSpills(const FrameDataInfo &FrameData, coro::Shape &Shape) {
// This dbg.declare is preserved for all coro-split function
// fragments. It will be unreachable in the main function, and
// processed by coro::salvageDebugInfo() by the Cloner.
- if (UseNewDbgInfoFormat) {
- DbgVariableRecord *NewDVR = new DbgVariableRecord(
- ValueAsMetadata::get(CurrentReload), DDI->getVariable(),
- DDI->getExpression(), DDI->getDebugLoc(),
- DbgVariableRecord::LocationType::Declare);
- Builder.GetInsertPoint()->getParent()->insertDbgRecordBefore(
- NewDVR, Builder.GetInsertPoint());
- } else {
- DIBuilder(*CurrentBlock->getParent()->getParent(), AllowUnresolved)
- .insertDeclare(CurrentReload, DDI->getVariable(),
- DDI->getExpression(), DDI->getDebugLoc(),
- Builder.GetInsertPoint());
- }
+ DbgVariableRecord *NewDVR = new DbgVariableRecord(
+ ValueAsMetadata::get(CurrentReload), DDI->getVariable(),
+ DDI->getExpression(), DDI->getDebugLoc(),
+ DbgVariableRecord::LocationType::Declare);
+ Builder.GetInsertPoint()->getParent()->insertDbgRecordBefore(
+ NewDVR, Builder.GetInsertPoint());
// This dbg.declare is for the main function entry point. It
// will be deleted in all coro-split functions.
coro::salvageDebugInfo(ArgToAllocaMap, *DDI, false /*UseEntryValue*/);
diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp
index be71cb69ad8cc..c8ad01a592ff6 100644
--- a/llvm/lib/Transforms/Utils/Local.cpp
+++ b/llvm/lib/Transforms/Utils/Local.cpp
@@ -88,8 +88,6 @@
using namespace llvm;
using namespace llvm::PatternMatch;
-extern cl::opt<bool> UseNewDbgInfoFormat;
-
#define DEBUG_TYPE "local"
STATISTIC(NumRemoved, "Number of unreachable basic blocks removed");
@@ -1691,16 +1689,10 @@ static void insertDbgValueOrDbgVariableRecord(DIBuilder &Builder, Value *DV,
DIExpression *DIExpr,
const DebugLoc &NewLoc,
BasicBlock::iterator Instr) {
- if (!UseNewDbgInfoFormat) {
- Builder.insertDbgValueIntrinsic(DV, DIVar, DIExpr, NewLoc, Instr);
- } else {
- // RemoveDIs: if we're using the new debug-info format, allocate a
- // DbgVariableRecord directly instead of a dbg.value intrinsic.
- ValueAsMetadata *DVAM = ValueAsMetadata::get(DV);
- DbgVariableRecord *DV =
- new DbgVariableRecord(DVAM, DIVar, DIExpr, NewLoc.get());
- Instr->getParent()->insertDbgRecordBefore(DV, Instr);
- }
+ ValueAsMetadata *DVAM = ValueAsMetadata::get(DV);
+ DbgVariableRecord *DVRec =
+ new DbgVariableRecord(DVAM, DIVar, DIExpr, NewLoc.get());
+ Instr->getParent()->insertDbgRecordBefore(DVRec, Instr);
}
static void insertDbgValueOrDbgVariableRecordAfter(
@@ -1838,7 +1830,6 @@ void llvm::ConvertDebugDeclareToDebugValue(DbgVariableRecord *DVR,
// then we want to insert a dbg.value for the corresponding fragment.
LLVM_DEBUG(dbgs() << "Failed to convert dbg.declare to dbg.value: " << *DVR
<< '\n');
- assert(UseNewDbgInfoFormat);
// For now, when there is a store to parts of the variable (but we do not
// know which part) we insert an dbg.value intrinsic to indicate that we
@@ -1919,7 +1910,6 @@ void llvm::ConvertDebugDeclareToDebugValue(DbgVariableRecord *DVR, LoadInst *LI,
// future if multi-location support is added to the IR, it...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/143207
More information about the llvm-commits
mailing list