[llvm] [RemoveDIs] Update DIBuilder to conditionally insert DbgRecords (PR #84739)
Stephen Tozer via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 11 10:38:35 PDT 2024
================
@@ -1081,18 +1124,29 @@ Instruction *DIBuilder::insertDbgIntrinsic(llvm::Function *IntrinsicFn,
return B.CreateCall(IntrinsicFn, Args);
}
-Instruction *DIBuilder::insertLabel(DILabel *LabelInfo, const DILocation *DL,
- BasicBlock *InsertBB,
- Instruction *InsertBefore) {
+DbgInstPtr DIBuilder::insertLabel(DILabel *LabelInfo, const DILocation *DL,
+ BasicBlock *InsertBB,
+ Instruction *InsertBefore) {
assert(LabelInfo && "empty or invalid DILabel* passed to dbg.label");
assert(DL && "Expected debug loc");
assert(DL->getScope()->getSubprogram() ==
LabelInfo->getScope()->getSubprogram() &&
"Expected matching subprograms");
+
+ trackIfUnresolved(LabelInfo);
+ if (M.IsNewDbgInfoFormat) {
+ DPLabel *DPL = new DPLabel(LabelInfo, DL);
+ if (InsertBB && InsertBefore)
+ InsertBB->insertDPValueBefore(DPL, InsertBefore->getIterator());
+ else if (InsertBB)
+ InsertBB->insertDPValueBefore(DPL, InsertBB->end());
+ // FIXME: Use smart pointers for DbgRecord ownership management.
----------------
SLTozer wrote:
What would we need smart pointers for here?
https://github.com/llvm/llvm-project/pull/84739
More information about the llvm-commits
mailing list