[llvm] [RemoveDIs][NFC] Move DPValue::filter -> filterDbgVars (PR #85208)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 14 04:37:31 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-selectiondag
Author: Stephen Tozer (SLTozer)
<details>
<summary>Changes</summary>
This patch changes DPValue::filter to be a non-member method filterDbgVars. There are two reasons for this: firstly, the name of DPValue is about to change to DbgVariableRecord, which will result in every `for` loop that uses DPValue::filter to require a line break. This is a small thing, but it makes the rename patch more difficult to review, and is just generally more awkward for what is a fairly common loop. Secondly, the intent is to later break up the DPValue class into subclasses, at which point it would be better to have a non-member function that allows template arguments for the cases we want to filter with greater specificity.
---
Patch is 22.83 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/85208.diff
21 Files Affected:
- (modified) llvm/include/llvm/IR/DebugProgramInstruction.h (+8-8)
- (modified) llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp (+8-8)
- (modified) llvm/lib/CodeGen/CodeGenPrepare.cpp (+2-2)
- (modified) llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (+1-1)
- (modified) llvm/lib/IR/DebugInfo.cpp (+2-2)
- (modified) llvm/lib/Transforms/Coroutines/CoroFrame.cpp (+1-1)
- (modified) llvm/lib/Transforms/Coroutines/CoroSplit.cpp (+1-1)
- (modified) llvm/lib/Transforms/IPO/MergeFunctions.cpp (+2-2)
- (modified) llvm/lib/Transforms/InstCombine/InstructionCombining.cpp (+1-1)
- (modified) llvm/lib/Transforms/Scalar/JumpThreading.cpp (+3-3)
- (modified) llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp (+1-1)
- (modified) llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp (+1-1)
- (modified) llvm/lib/Transforms/Utils/BasicBlockUtils.cpp (+2-2)
- (modified) llvm/lib/Transforms/Utils/InlineFunction.cpp (+1-1)
- (modified) llvm/lib/Transforms/Utils/Local.cpp (+2-2)
- (modified) llvm/lib/Transforms/Utils/LoopRotationUtils.cpp (+4-4)
- (modified) llvm/lib/Transforms/Utils/LoopUtils.cpp (+1-1)
- (modified) llvm/lib/Transforms/Utils/MemoryTaggingSupport.cpp (+1-1)
- (modified) llvm/lib/Transforms/Utils/SimplifyCFG.cpp (+1-1)
- (modified) llvm/lib/Transforms/Utils/ValueMapper.cpp (+1-1)
- (modified) llvm/unittests/IR/DebugInfoTest.cpp (+1-1)
``````````diff
diff --git a/llvm/include/llvm/IR/DebugProgramInstruction.h b/llvm/include/llvm/IR/DebugProgramInstruction.h
index 1afc9259241d50..971c22fa9aa22a 100644
--- a/llvm/include/llvm/IR/DebugProgramInstruction.h
+++ b/llvm/include/llvm/IR/DebugProgramInstruction.h
@@ -511,20 +511,20 @@ class DPValue : public DbgRecord, protected DebugValueUser {
void print(raw_ostream &O, bool IsForDebug = false) const;
void print(raw_ostream &ROS, ModuleSlotTracker &MST, bool IsForDebug) const;
- /// Filter the DbgRecord range to DPValue types only and downcast.
- static inline auto
- filter(iterator_range<simple_ilist<DbgRecord>::iterator> R) {
- return map_range(
- make_filter_range(R, [](DbgRecord &E) { return isa<DPValue>(E); }),
- [](DbgRecord &E) { return std::ref(cast<DPValue>(E)); });
- }
-
/// Support type inquiry through isa, cast, and dyn_cast.
static bool classof(const DbgRecord *E) {
return E->getRecordKind() == ValueKind;
}
};
+/// Filter the DbgRecord range to DPValue types only and downcast.
+static inline auto
+filterDbgVars(iterator_range<simple_ilist<DbgRecord>::iterator> R) {
+ return map_range(
+ make_filter_range(R, [](DbgRecord &E) { return isa<DPValue>(E); }),
+ [](DbgRecord &E) { return std::ref(cast<DPValue>(E)); });
+}
+
/// Per-instruction record of debug-info. If an Instruction is the position of
/// some debugging information, it points at a DPMarker storing that info. Each
/// marker points back at the instruction that owns it. Various utilities are
diff --git a/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp b/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
index 746926e56f2e17..52774c7d73225f 100644
--- a/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
+++ b/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
@@ -226,7 +226,7 @@ void FunctionVarLocs::init(FunctionVarLocsBuilder &Builder) {
// Any VarLocInfos attached to a DbgRecord should now be remapped to their
// marker Instruction, in order of DbgRecord appearance and prior to any
// VarLocInfos attached directly to that instruction.
- for (const DPValue &DPV : DPValue::filter(I->getDbgRecordRange())) {
+ for (const DPValue &DPV : filterDbgVars(I->getDbgRecordRange())) {
// Even though DPV defines a variable location, VarLocsBeforeInst can
// still be empty if that VarLoc was redundant.
if (!Builder.VarLocsBeforeInst.count(&DPV))
@@ -830,7 +830,7 @@ class MemLocFragmentFill {
void process(BasicBlock &BB, VarFragMap &LiveSet) {
BBInsertBeforeMap[&BB].clear();
for (auto &I : BB) {
- for (DPValue &DPV : DPValue::filter(I.getDbgRecordRange())) {
+ for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange())) {
if (const auto *Locs = FnVarLocs->getWedge(&DPV)) {
for (const VarLocInfo &Loc : *Locs) {
addDef(Loc, &DPV, *I.getParent(), LiveSet);
@@ -1919,7 +1919,7 @@ void AssignmentTrackingLowering::process(BasicBlock &BB, BlockInfo *LiveSet) {
// Skip over non-variable debug records (i.e., labels). They're going to
// be read from IR (possibly re-ordering them within the debug record
// range) rather than from the analysis results.
- for (DPValue &DPV : DPValue::filter(II->getDbgRecordRange())) {
+ for (DPValue &DPV : filterDbgVars(II->getDbgRecordRange())) {
resetInsertionPoint(DPV);
processDPValue(DPV, LiveSet);
assert(LiveSet->isValid());
@@ -2176,7 +2176,7 @@ static AssignmentTrackingLowering::OverlapMap buildOverlapMapAndRecordDeclares(
};
for (auto &BB : Fn) {
for (auto &I : BB) {
- for (DPValue &DPV : DPValue::filter(I.getDbgRecordRange()))
+ for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange()))
ProcessDbgRecord(&DPV, DPDeclares);
if (auto *DII = dyn_cast<DbgVariableIntrinsic>(&I)) {
ProcessDbgRecord(DII, InstDeclares);
@@ -2466,7 +2466,7 @@ bool AssignmentTrackingLowering::emitPromotedVarLocs(
for (auto &BB : Fn) {
for (auto &I : BB) {
// Skip instructions other than dbg.values and dbg.assigns.
- for (DPValue &DPV : DPValue::filter(I.getDbgRecordRange()))
+ for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange()))
if (DPV.isDbgValue() || DPV.isDbgAssign())
TranslateDbgRecord(&DPV);
auto *DVI = dyn_cast<DbgValueInst>(&I);
@@ -2568,7 +2568,7 @@ removeRedundantDbgLocsUsingBackwardScan(const BasicBlock *BB,
}
};
HandleLocsForWedge(&I);
- for (DPValue &DPV : reverse(DPValue::filter(I.getDbgRecordRange())))
+ for (DPValue &DPV : reverse(filterDbgVars(I.getDbgRecordRange())))
HandleLocsForWedge(&DPV);
}
@@ -2633,7 +2633,7 @@ removeRedundantDbgLocsUsingForwardScan(const BasicBlock *BB,
}
};
- for (DPValue &DPV : DPValue::filter(I.getDbgRecordRange()))
+ for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange()))
HandleLocsForWedge(&DPV);
HandleLocsForWedge(&I);
}
@@ -2719,7 +2719,7 @@ removeUndefDbgLocsFromEntryBlock(const BasicBlock *BB,
Changed = true;
}
};
- for (DPValue &DPV : DPValue::filter(I.getDbgRecordRange()))
+ for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange()))
HandleLocsForWedge(&DPV);
HandleLocsForWedge(&I);
}
diff --git a/llvm/lib/CodeGen/CodeGenPrepare.cpp b/llvm/lib/CodeGen/CodeGenPrepare.cpp
index 055e275e143d7a..bece70a6e008bc 100644
--- a/llvm/lib/CodeGen/CodeGenPrepare.cpp
+++ b/llvm/lib/CodeGen/CodeGenPrepare.cpp
@@ -8506,7 +8506,7 @@ bool CodeGenPrepare::fixupDbgValue(Instruction *I) {
bool CodeGenPrepare::fixupDPValuesOnInst(Instruction &I) {
bool AnyChange = false;
- for (DPValue &DPV : DPValue::filter(I.getDbgRecordRange()))
+ for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange()))
AnyChange |= fixupDPValue(DPV);
return AnyChange;
}
@@ -8620,7 +8620,7 @@ bool CodeGenPrepare::placeDbgValues(Function &F) {
// If this isn't a dbg.value, process any attached DPValue records
// attached to this instruction.
for (DPValue &DPV : llvm::make_early_inc_range(
- DPValue::filter(Insn.getDbgRecordRange()))) {
+ filterDbgVars(Insn.getDbgRecordRange()))) {
if (DPV.Type != DPValue::LocationType::Value)
continue;
DbgProcessor(&DPV, &Insn);
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
index c78c3ed294e46b..30f67d37e2e25e 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
@@ -1461,7 +1461,7 @@ static void processDbgDeclares(FunctionLoweringInfo &FuncInfo) {
if (DI && processDbgDeclare(FuncInfo, DI->getAddress(), DI->getExpression(),
DI->getVariable(), DI->getDebugLoc()))
FuncInfo.PreprocessedDbgDeclares.insert(DI);
- for (const DPValue &DPV : DPValue::filter(I.getDbgRecordRange())) {
+ for (const DPValue &DPV : filterDbgVars(I.getDbgRecordRange())) {
if (DPV.Type == DPValue::LocationType::Declare &&
processDbgDeclare(FuncInfo, DPV.getVariableLocationOp(0),
DPV.getExpression(), DPV.getVariable(),
diff --git a/llvm/lib/IR/DebugInfo.cpp b/llvm/lib/IR/DebugInfo.cpp
index d16895058ba252..8587f17148d286 100644
--- a/llvm/lib/IR/DebugInfo.cpp
+++ b/llvm/lib/IR/DebugInfo.cpp
@@ -1828,7 +1828,7 @@ void at::deleteAll(Function *F) {
SmallVector<DPValue *, 12> DPToDelete;
for (BasicBlock &BB : *F) {
for (Instruction &I : BB) {
- for (DPValue &DPV : DPValue::filter(I.getDbgRecordRange()))
+ for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange()))
if (DPV.isDbgAssign())
DPToDelete.push_back(&DPV);
if (auto *DAI = dyn_cast<DbgAssignIntrinsic>(&I))
@@ -2257,7 +2257,7 @@ bool AssignmentTrackingPass::runOnFunction(Function &F) {
};
for (auto &BB : F) {
for (auto &I : BB) {
- for (DPValue &DPV : DPValue::filter(I.getDbgRecordRange())) {
+ for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange())) {
if (DPV.isDbgDeclare())
ProcessDeclare(&DPV, DPVDeclares);
}
diff --git a/llvm/lib/Transforms/Coroutines/CoroFrame.cpp b/llvm/lib/Transforms/Coroutines/CoroFrame.cpp
index 7c29d443df51b6..ae2a06a1d4748a 100644
--- a/llvm/lib/Transforms/Coroutines/CoroFrame.cpp
+++ b/llvm/lib/Transforms/Coroutines/CoroFrame.cpp
@@ -1925,7 +1925,7 @@ static void insertSpills(const FrameDataInfo &FrameData, coro::Shape &Shape) {
U->replaceUsesOfWith(Def, CurrentReload);
// Instructions are added to Def's user list if the attached
// debug records use Def. Update those now.
- for (DPValue &DPV : DPValue::filter(U->getDbgRecordRange()))
+ for (DPValue &DPV : filterDbgVars(U->getDbgRecordRange()))
DPV.replaceVariableLocationOp(Def, CurrentReload, true);
}
}
diff --git a/llvm/lib/Transforms/Coroutines/CoroSplit.cpp b/llvm/lib/Transforms/Coroutines/CoroSplit.cpp
index 086971a1f21373..0fce596d3e2ca0 100644
--- a/llvm/lib/Transforms/Coroutines/CoroSplit.cpp
+++ b/llvm/lib/Transforms/Coroutines/CoroSplit.cpp
@@ -684,7 +684,7 @@ collectDbgVariableIntrinsics(Function &F) {
SmallVector<DbgVariableIntrinsic *, 8> Intrinsics;
SmallVector<DPValue *> DPValues;
for (auto &I : instructions(F)) {
- for (DPValue &DPV : DPValue::filter(I.getDbgRecordRange()))
+ for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange()))
DPValues.push_back(&DPV);
if (auto *DVI = dyn_cast<DbgVariableIntrinsic>(&I))
Intrinsics.push_back(DVI);
diff --git a/llvm/lib/Transforms/IPO/MergeFunctions.cpp b/llvm/lib/Transforms/IPO/MergeFunctions.cpp
index ed5352e7d04a97..4ff14b671af61a 100644
--- a/llvm/lib/Transforms/IPO/MergeFunctions.cpp
+++ b/llvm/lib/Transforms/IPO/MergeFunctions.cpp
@@ -643,7 +643,7 @@ void MergeFunctions::filterInstsUnrelatedToPDI(
BI != BIE; ++BI) {
// Examine DPValues as they happen "before" the instruction. Are they
// connected to parameters?
- for (DPValue &DPV : DPValue::filter(BI->getDbgRecordRange())) {
+ for (DPValue &DPV : filterDbgVars(BI->getDbgRecordRange())) {
if (DPV.isDbgValue() || DPV.isDbgAssign()) {
ExamineDbgValue(&DPV, PDPVRelated);
} else {
@@ -686,7 +686,7 @@ void MergeFunctions::filterInstsUnrelatedToPDI(
// Collect the set of unrelated instructions and debug records.
for (Instruction &I : *GEntryBlock) {
- for (DPValue &DPV : DPValue::filter(I.getDbgRecordRange()))
+ for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange()))
IsPDIRelated(&DPV, PDPVRelated, PDPVUnrelatedWL);
IsPDIRelated(&I, PDIRelated, PDIUnrelatedWL);
}
diff --git a/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp b/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
index 90a18fcc125c45..1d73f8d96300f0 100644
--- a/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
@@ -4703,7 +4703,7 @@ void InstCombinerImpl::tryToSinkInstructionDPValues(
// latest assignment.
for (const Instruction *Inst : DupSet) {
for (DPValue &DPV :
- llvm::reverse(DPValue::filter(Inst->getDbgRecordRange()))) {
+ llvm::reverse(filterDbgVars(Inst->getDbgRecordRange()))) {
DebugVariable DbgUserVariable =
DebugVariable(DPV.getVariable(), DPV.getExpression(),
DPV.getDebugLoc()->getInlinedAt());
diff --git a/llvm/lib/Transforms/Scalar/JumpThreading.cpp b/llvm/lib/Transforms/Scalar/JumpThreading.cpp
index 1058a015017e41..5d7b050ed5b2e3 100644
--- a/llvm/lib/Transforms/Scalar/JumpThreading.cpp
+++ b/llvm/lib/Transforms/Scalar/JumpThreading.cpp
@@ -401,7 +401,7 @@ static bool replaceFoldableUses(Instruction *Cond, Value *ToVal,
Changed |= replaceNonLocalUsesWith(Cond, ToVal);
for (Instruction &I : reverse(*KnownAtEndOfBB)) {
// Replace any debug-info record users of Cond with ToVal.
- for (DPValue &DPV : DPValue::filter(I.getDbgRecordRange()))
+ for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange()))
DPV.replaceVariableLocationOp(Cond, ToVal, true);
// Reached the Cond whose uses we are trying to replace, so there are no
@@ -2081,7 +2081,7 @@ JumpThreadingPass::cloneInstructions(BasicBlock::iterator BI,
auto CloneAndRemapDbgInfo = [&](Instruction *NewInst, Instruction *From) {
auto DPVRange = NewInst->cloneDebugInfoFrom(From);
- for (DPValue &DPV : DPValue::filter(DPVRange))
+ for (DPValue &DPV : filterDbgVars(DPVRange))
RetargetDPValueIfPossible(&DPV);
};
@@ -2116,7 +2116,7 @@ JumpThreadingPass::cloneInstructions(BasicBlock::iterator BI,
DPMarker *Marker = RangeBB->getMarker(BE);
DPMarker *EndMarker = NewBB->createMarker(NewBB->end());
auto DPVRange = EndMarker->cloneDebugInfoFrom(Marker, std::nullopt);
- for (DPValue &DPV : DPValue::filter(DPVRange))
+ for (DPValue &DPV : filterDbgVars(DPVRange))
RetargetDPValueIfPossible(&DPV);
}
diff --git a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
index c4e1a0db8b3230..7641ba2a219cc3 100644
--- a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
@@ -6711,7 +6711,7 @@ static void DbgGatherSalvagableDVI(
SalvageableDVISCEVs.push_back(std::move(NewRec));
return true;
};
- for (DPValue &DPV : DPValue::filter(I.getDbgRecordRange())) {
+ for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange())) {
if (DPV.isDbgValue() || DPV.isDbgAssign())
ProcessDbgValue(&DPV);
}
diff --git a/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp b/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
index 8686570dfd2f44..44ea6e9ffefa2b 100644
--- a/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
+++ b/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
@@ -293,7 +293,7 @@ bool SpeculativeExecutionPass::considerHoistingFromTo(
for (const auto &I : FromBlock) {
// Make note of any DPValues that need hoisting. DPLabels
// get left behind just like llvm.dbg.labels.
- for (DPValue &DPV : DPValue::filter(I.getDbgRecordRange())) {
+ for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange())) {
if (HasNoUnhoistedInstr(DPV.location_ops()))
DPValuesToHoist[DPV.getInstruction()].push_back(&DPV);
}
diff --git a/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp b/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
index 2006b40e26d059..e7ad18df106d8d 100644
--- a/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
+++ b/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
@@ -504,7 +504,7 @@ static bool DPValuesRemoveRedundantDbgInstrsUsingForwardScan(BasicBlock *BB) {
DenseMap<DebugVariable, std::pair<SmallVector<Value *, 4>, DIExpression *>>
VariableMap;
for (auto &I : *BB) {
- for (DPValue &DPV : DPValue::filter(I.getDbgRecordRange())) {
+ for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange())) {
if (DPV.getType() == DPValue::LocationType::Declare)
continue;
DebugVariable Key(DPV.getVariable(), std::nullopt,
@@ -553,7 +553,7 @@ static bool DPValuesRemoveUndefDbgAssignsFromEntryBlock(BasicBlock *BB) {
// Remove undef dbg.assign intrinsics that are encountered before
// any non-undef intrinsics from the entry block.
for (auto &I : *BB) {
- for (DPValue &DPV : DPValue::filter(I.getDbgRecordRange())) {
+ for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange())) {
if (!DPV.isDbgValue() && !DPV.isDbgAssign())
continue;
bool IsDbgValueKind =
diff --git a/llvm/lib/Transforms/Utils/InlineFunction.cpp b/llvm/lib/Transforms/Utils/InlineFunction.cpp
index 1bbe76a92187c8..33d32720a33317 100644
--- a/llvm/lib/Transforms/Utils/InlineFunction.cpp
+++ b/llvm/lib/Transforms/Utils/InlineFunction.cpp
@@ -1829,7 +1829,7 @@ static void fixupAssignments(Function::iterator Start, Function::iterator End) {
// attachment or use, replace it with a new version.
for (auto BBI = Start; BBI != End; ++BBI) {
for (Instruction &I : *BBI) {
- for (DPValue &DPV : DPValue::filter(I.getDbgRecordRange())) {
+ for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange())) {
if (DPV.isDbgAssign())
DPV.setAssignId(GetNewID(DPV.getAssignID()));
}
diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp
index a87e5a3a923a48..422319eb185134 100644
--- a/llvm/lib/Transforms/Utils/Local.cpp
+++ b/llvm/lib/Transforms/Utils/Local.cpp
@@ -1911,7 +1911,7 @@ bool llvm::LowerDbgDeclare(Function &F) {
for (Instruction &BI : FI) {
if (auto *DDI = dyn_cast<DbgDeclareInst>(&BI))
Dbgs.push_back(DDI);
- for (DPValue &DPV : DPValue::filter(BI.getDbgRecordRange())) {
+ for (DPValue &DPV : filterDbgVars(BI.getDbgRecordRange())) {
if (DPV.getType() == DPValue::LocationType::Declare)
DPVs.push_back(&DPV);
}
@@ -1996,7 +1996,7 @@ static void insertDPValuesForPHIs(BasicBlock *BB,
// Map existing PHI nodes to their DPValues.
DenseMap<Value *, DPValue *> DbgValueMap;
for (auto &I : *BB) {
- for (DPValue &DPV : DPValue::filter(I.getDbgRecordRange())) {
+ for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange())) {
for (Value *V : DPV.location_ops())
if (auto *Loc = dyn_cast_or_null<PHINode>(V))
DbgValueMap.insert({Loc, &DPV});
diff --git a/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp b/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
index acfd87c64b79a5..980ecf06c055c4 100644
--- a/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
+++ b/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
@@ -554,7 +554,7 @@ bool LoopRotate::rotateLoop(Loop *L, bool SimplifiedLatch) {
DbgIntrinsics.insert(makeHash(DII));
// Until RemoveDIs supports dbg.declares in DPValue format, we'll need
// to collect DPValues attached to any other debug intrinsics.
- for (const DPValue &DPV : DPValue::filter(DII->getDbgRecordRange()))
+ for (const DPValue &DPV : filterDbgVars(DII->getDbgRecordRange()))
DbgIntrinsics.insert(makeHash(&DPV));
} else {
break;
@@ -564,7 +564,7 @@ bool LoopRotate::rotateLoop(Loop *L, bool SimplifiedLatch) {
// Build DPValue hashes for DPValues attached to the terminator, which isn't
// considered in the loop above.
for (const DPValue &DPV :
- DPValue::filter(OrigPreheader->getTerminator()->getDbgRecordRange()))
+ filterDbgVars(OrigPreheader->getTerminator()->getDbgRecordRange()))
DbgIntrinsics.insert(makeHash(&DPV));
// Remember the local noalias scope declarations in the header. After the
@@ -631,7 +631,7 @@ bool LoopRotate::rotateLoop(Loop *L, bool SimplifiedLatch) {
RF_NoModuleLevelChanges | RF_IgnoreMissingLocals);
// Erase anything we've seen before.
for (DPValue &DPV :
- make_early_inc_range(DPValue::filter(DbgValueRange)))
+ make_early_inc_range(filterDbgVars(DbgValueRange)))
if (DbgIntrinsics.count(makeHash(&DPV)))
DPV.eraseFromParent();
}
@@ -657,7 +657,7 @@ bool LoopRotate::rotateLoop(Loop *L, bool SimplifiedLatch) {
RF_NoModuleLevelChanges | RF_IgnoreMissingLocals);
NextDbgInsts = DPMarker::getEmptyDbgRecordRange();
// Erase anything we've seen before.
- for (DPValue &DPV : make_early_inc_range(DPValue::filter(Range)))
+ for (DPValue &DPV : make_early_inc_range(filterDbgVars(Range)))
if (DbgIntrinsics.count(makeHash(&DPV)))
DPV.eraseFromParent();
}
diff --git a/llvm/lib/Transforms/Utils/LoopUtils.cpp b/llvm/lib/Transforms/Utils/LoopUtils.cpp
index 11b76655d30374..c815a7b0b2932f 100644
--- a/llvm/lib/Transforms/Utils/LoopUtils.cpp
+++ b/llvm/lib/Transforms/Utils/LoopUtils.cpp
@@ -634,7 +634,7 @@ void llvm::deleteDeadLoop(Loop *L, DominatorTree *DT, ScalarEvolution *SE,
// RemoveDIs: do the same as below for DPValues.
if (Block->IsNewDbgInfoFormat) {
for (DPValue &DPV : llvm::make_early_inc_range(
- DPValue::filter(I.getDbgRecordRange()))) {
+ filterDbgVars(I.getDbgRecordRange()))) {
DebugVariable Key(DPV.g...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/85208
More information about the llvm-commits
mailing list