diff options
Diffstat (limited to 'llvm/lib/Transforms/IPO')
-rw-r--r-- | llvm/lib/Transforms/IPO/MergeFunctions.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/llvm/lib/Transforms/IPO/MergeFunctions.cpp b/llvm/lib/Transforms/IPO/MergeFunctions.cpp index d4555e9..f5525de 100644 --- a/llvm/lib/Transforms/IPO/MergeFunctions.cpp +++ b/llvm/lib/Transforms/IPO/MergeFunctions.cpp @@ -572,7 +572,7 @@ void MergeFunctions::filterInstsUnrelatedToPDI( // Work out whether a dbg.value intrinsic or an equivalent DbgVariableRecord // is a parameter to be preserved. - auto ExamineDbgValue = [](auto *DbgVal, auto &Container) { + auto ExamineDbgValue = [&PDVRRelated](DbgVariableRecord *DbgVal) { LLVM_DEBUG(dbgs() << " Deciding: "); LLVM_DEBUG(DbgVal->print(dbgs())); LLVM_DEBUG(dbgs() << "\n"); @@ -581,7 +581,7 @@ void MergeFunctions::filterInstsUnrelatedToPDI( LLVM_DEBUG(dbgs() << " Include (parameter): "); LLVM_DEBUG(DbgVal->print(dbgs())); LLVM_DEBUG(dbgs() << "\n"); - Container.insert(DbgVal); + PDVRRelated.insert(DbgVal); } else { LLVM_DEBUG(dbgs() << " Delete (!parameter): "); LLVM_DEBUG(DbgVal->print(dbgs())); @@ -589,7 +589,8 @@ void MergeFunctions::filterInstsUnrelatedToPDI( } }; - auto ExamineDbgDeclare = [&PDIRelated](auto *DbgDecl, auto &Container) { + auto ExamineDbgDeclare = [&PDIRelated, + &PDVRRelated](DbgVariableRecord *DbgDecl) { LLVM_DEBUG(dbgs() << " Deciding: "); LLVM_DEBUG(DbgDecl->print(dbgs())); LLVM_DEBUG(dbgs() << "\n"); @@ -616,7 +617,7 @@ void MergeFunctions::filterInstsUnrelatedToPDI( LLVM_DEBUG(dbgs() << " Include: "); LLVM_DEBUG(DbgDecl->print(dbgs())); LLVM_DEBUG(dbgs() << "\n"); - Container.insert(DbgDecl); + PDVRRelated.insert(DbgDecl); } else { LLVM_DEBUG(dbgs() << " Delete (!parameter): "); LLVM_DEBUG(SI->print(dbgs())); @@ -647,18 +648,14 @@ void MergeFunctions::filterInstsUnrelatedToPDI( // they connected to parameters? for (DbgVariableRecord &DVR : filterDbgVars(BI->getDbgRecordRange())) { if (DVR.isDbgValue() || DVR.isDbgAssign()) { - ExamineDbgValue(&DVR, PDVRRelated); + ExamineDbgValue(&DVR); } else { assert(DVR.isDbgDeclare()); - ExamineDbgDeclare(&DVR, PDVRRelated); + ExamineDbgDeclare(&DVR); } } - if (auto *DVI = dyn_cast<DbgValueInst>(&*BI)) { - ExamineDbgValue(DVI, PDIRelated); - } else if (auto *DDI = dyn_cast<DbgDeclareInst>(&*BI)) { - ExamineDbgDeclare(DDI, PDIRelated); - } else if (BI->isTerminator() && &*BI == GEntryBlock->getTerminator()) { + if (BI->isTerminator() && &*BI == GEntryBlock->getTerminator()) { LLVM_DEBUG(dbgs() << " Will Include Terminator: "); LLVM_DEBUG(BI->print(dbgs())); LLVM_DEBUG(dbgs() << "\n"); |