Skip to content

Commit 0f032ef

Browse files
committed
[MLIR] Update DataFlowFramework.h to be compatible with clang c++23
1 parent 5499901 commit 0f032ef

File tree

1 file changed

+26
-23
lines changed

1 file changed

+26
-23
lines changed

mlir/include/mlir/Analysis/DataFlowFramework.h

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -354,29 +354,7 @@ class DataFlowSolver {
354354

355355
/// Erase any analysis state associated with the given lattice anchor.
356356
template <typename AnchorT>
357-
void eraseState(AnchorT anchor) {
358-
LatticeAnchor latticeAnchor(anchor);
359-
360-
// Update equivalentAnchorMap.
361-
for (auto &&[TypeId, eqClass] : equivalentAnchorMap) {
362-
if (!eqClass.contains(latticeAnchor)) {
363-
continue;
364-
}
365-
llvm::EquivalenceClasses<LatticeAnchor>::member_iterator leaderIt =
366-
eqClass.findLeader(latticeAnchor);
367-
368-
// Update analysis states with new leader if needed.
369-
if (*leaderIt == latticeAnchor && ++leaderIt != eqClass.member_end()) {
370-
analysisStates[*leaderIt][TypeId] =
371-
std::move(analysisStates[latticeAnchor][TypeId]);
372-
}
373-
374-
eqClass.erase(latticeAnchor);
375-
}
376-
377-
// Update analysis states.
378-
analysisStates.erase(latticeAnchor);
379-
}
357+
void eraseState(AnchorT anchor);
380358

381359
/// Erase all analysis states.
382360
void eraseAllStates() {
@@ -560,6 +538,31 @@ class AnalysisState {
560538
friend class DataFlowSolver;
561539
};
562540

541+
template <typename AnchorT>
542+
void DataFlowSolver::eraseState(AnchorT anchor) {
543+
LatticeAnchor latticeAnchor(anchor);
544+
545+
// Update equivalentAnchorMap.
546+
for (auto &&[TypeId, eqClass] : equivalentAnchorMap) {
547+
if (!eqClass.contains(latticeAnchor)) {
548+
continue;
549+
}
550+
llvm::EquivalenceClasses<LatticeAnchor>::member_iterator leaderIt =
551+
eqClass.findLeader(latticeAnchor);
552+
553+
// Update analysis states with new leader if needed.
554+
if (*leaderIt == latticeAnchor && ++leaderIt != eqClass.member_end()) {
555+
analysisStates[*leaderIt][TypeId] =
556+
std::move(analysisStates[latticeAnchor][TypeId]);
557+
}
558+
559+
eqClass.erase(latticeAnchor);
560+
}
561+
562+
// Update analysis states.
563+
analysisStates.erase(latticeAnchor);
564+
}
565+
563566
//===----------------------------------------------------------------------===//
564567
// DataFlowAnalysis
565568
//===----------------------------------------------------------------------===//

0 commit comments

Comments
 (0)