Skip to content

Commit 9e09fe4

Browse files
committed
fix program point usage
1 parent dee817a commit 9e09fe4

File tree

4 files changed

+11
-12
lines changed

4 files changed

+11
-12
lines changed

mlir/include/mlir/Analysis/DataFlowFramework.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -659,9 +659,8 @@ class DataFlowAnalysis {
659659
}
660660

661661
/// Add irrelevant program point.
662-
template <typename PointT>
663-
void addIrrelevantPoint(PointT point) {
664-
irrelevantPoints.insert(ProgramPoint(point));
662+
void addIrrelevantPoint(ProgramPoint *point) {
663+
irrelevantPoints.insert(point);
665664
}
666665

667666
/// Get a read-only analysis state for the given point and create a dependency
@@ -702,7 +701,7 @@ class DataFlowAnalysis {
702701
#endif // LLVM_ENABLE_ABI_BREAKING_CHECKS
703702

704703
/// Program points shouldn't analyzed by this analysis.
705-
DenseSet<ProgramPoint> irrelevantPoints;
704+
DenseSet<ProgramPoint *> irrelevantPoints;
706705

707706
private:
708707
/// The parent data-flow solver.

mlir/lib/Analysis/DataFlow/DenseAnalysis.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,10 @@ void AbstractDenseForwardDataFlowAnalysis::visitCallOperation(
105105
LogicalResult
106106
AbstractDenseForwardDataFlowAnalysis::processOperation(Operation *op) {
107107
// Skip irrelavant program points.
108-
if (irrelevantPoints.contains(ProgramPoint(op)))
109-
return;
110-
111108
ProgramPoint *point = getProgramPointAfter(op);
109+
if (irrelevantPoints.contains(point))
110+
return success();
111+
112112
// If the containing block is not executable, bail out.
113113
if (op->getBlock() != nullptr &&
114114
!getOrCreateFor<Executable>(point, getProgramPointBefore(op->getBlock()))
@@ -338,10 +338,10 @@ void AbstractDenseBackwardDataFlowAnalysis::visitCallOperation(
338338
LogicalResult
339339
AbstractDenseBackwardDataFlowAnalysis::processOperation(Operation *op) {
340340
// Skip irrelavant program points.
341-
if (irrelevantPoints.contains(ProgramPoint(op)))
342-
return;
343-
344341
ProgramPoint *point = getProgramPointBefore(op);
342+
if (irrelevantPoints.contains(point))
343+
return success();
344+
345345
// If the containing block is not executable, bail out.
346346
if (op->getBlock() != nullptr &&
347347
!getOrCreateFor<Executable>(point, getProgramPointBefore(op->getBlock()))

mlir/test/lib/Analysis/DataFlow/TestDenseBackwardDataFlowAnalysis.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ LogicalResult NextAccessAnalysis::visitOperation(Operation *op,
147147

148148
void NextAccessAnalysis::buildOperationEquivalentLatticeAnchor(Operation *op) {
149149
if (isMemoryEffectFree(op)) {
150-
addIrrelevantPoint(op);
150+
addIrrelevantPoint(getProgramPointBefore(op));
151151
unionLatticeAnchors<NextAccess>(getProgramPointBefore(op),
152152
getProgramPointAfter(op));
153153
}

mlir/test/lib/Analysis/DataFlow/TestDenseForwardDataFlowAnalysis.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ LogicalResult LastModifiedAnalysis::visitOperation(
154154
void LastModifiedAnalysis::buildOperationEquivalentLatticeAnchor(
155155
Operation *op) {
156156
if (isMemoryEffectFree(op)) {
157-
addIrrelevantPoint(op);
157+
addIrrelevantPoint(getProgramPointAfter(op));
158158
unionLatticeAnchors<LastModification>(getProgramPointBefore(op),
159159
getProgramPointAfter(op));
160160
}

0 commit comments

Comments
 (0)