Index: llvm/include/llvm/IR/DebugInfo.h =================================================================== --- llvm/include/llvm/IR/DebugInfo.h +++ llvm/include/llvm/IR/DebugInfo.h @@ -219,6 +219,9 @@ return make_range(Value::user_iterator(), Value::user_iterator()); } +/// Delete the llvm.dbg.assgin intrinsics linked to \p Inst. +void deleteAssignmentMarkers(const Instruction *Inst); + /// Replace all uses (and attachments) of \p Old with \p New. void RAUW(DIAssignID *Old, DIAssignID *New); Index: llvm/lib/IR/DebugInfo.cpp =================================================================== --- llvm/lib/IR/DebugInfo.cpp +++ llvm/lib/IR/DebugInfo.cpp @@ -1696,6 +1696,15 @@ return make_range(IDAsValue->user_begin(), IDAsValue->user_end()); } +void at::deleteAssignmentMarkers(const Instruction *Inst) { + auto Range = getAssignmentMarkers(Inst); + if (Range.empty()) + return; + SmallVector ToDelete(Range.begin(), Range.end()); + for (auto *DAI : ToDelete) + DAI->eraseFromParent(); +} + void at::RAUW(DIAssignID *Old, DIAssignID *New) { // Replace MetadataAsValue uses. if (auto *OldIDAsValue =