Skip to content

Commit 94643fd

Browse files
author
Tobias Gysi
committed
[mlir][linalg] Cleanup LinalgOp usage in dependence analysis (NFC).
Replace the uses of deprecated Structured Op Interface methods in DependenceAnalysis.cpp and DependenceAnalysis.h. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103411
1 parent 7594f50 commit 94643fd

File tree

2 files changed

+22
-22
lines changed

2 files changed

+22
-22
lines changed

mlir/include/mlir/Dialect/Linalg/Analysis/DependenceAnalysis.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ class LinalgDependenceGraph {
8080
if (!owner)
8181
return llvm::None;
8282
if (OpOperand *operand = opView.dyn_cast<OpOperand *>())
83-
return owner.getIndexingMap(operand->getOperandNumber());
84-
return owner.getOutputIndexingMap(
85-
opView.get<Value>().cast<OpResult>().getResultNumber());
83+
return owner.getTiedIndexingMap(operand);
84+
return owner.getTiedIndexingMap(owner.getOutputOperand(
85+
opView.get<Value>().cast<OpResult>().getResultNumber()));
8686
}
8787
// Return the operand number if the `opView` is an OpOperand *. Otherwise
8888
// return llvm::None.

mlir/lib/Dialect/Linalg/Analysis/DependenceAnalysis.cpp

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -165,46 +165,46 @@ void LinalgDependenceGraph::addDependencesBetween(LinalgOp src, LinalgOp dst) {
165165
LLVM_DEBUG(dbgs() << "addDependencesBetween " << *src.getOperation()
166166
<< " and " << *dst.getOperation() << "\n");
167167
if (src.hasTensorSemantics() && dst.hasTensorSemantics()) {
168-
for (OpOperand &dstOpOperand : dst.getInputOpOperands()) {
168+
for (OpOperand *dstOpOperand : dst.getInputOperands()) {
169169
// Check if the operand is defined by the src.
170-
auto definingOp = dstOpOperand.get().getDefiningOp<LinalgOp>();
170+
auto definingOp = dstOpOperand->get().getDefiningOp<LinalgOp>();
171171
if (definingOp && definingOp == src)
172-
addDependenceElem(DependenceType::RAW, dstOpOperand.get(),
173-
&dstOpOperand);
172+
addDependenceElem(DependenceType::RAW, dstOpOperand->get(),
173+
dstOpOperand);
174174
}
175-
for (OpOperand &dstOpOperand : dst.getOutputOpOperands()) {
175+
for (OpOperand *dstOpOperand : dst.getOutputOperands()) {
176176
// Check if the operand is defined by the src.
177-
auto definingOp = dstOpOperand.get().getDefiningOp<LinalgOp>();
177+
auto definingOp = dstOpOperand->get().getDefiningOp<LinalgOp>();
178178
if (definingOp && definingOp == src) {
179-
if (dst.isInitTensor(&dstOpOperand)) {
180-
addDependenceElem(DependenceType::RAW, dstOpOperand.get(),
181-
&dstOpOperand);
179+
if (dst.isInitTensor(dstOpOperand)) {
180+
addDependenceElem(DependenceType::RAW, dstOpOperand->get(),
181+
dstOpOperand);
182182
}
183-
addDependenceElem(DependenceType::WAW, dstOpOperand.get(),
184-
&dstOpOperand);
183+
addDependenceElem(DependenceType::WAW, dstOpOperand->get(),
184+
dstOpOperand);
185185
}
186186
}
187187
return;
188188
}
189189
assert(src.hasBufferSemantics() && dst.hasBufferSemantics() &&
190190
"unhandled dependence tracking for mixed buffer/tensor operations");
191-
for (OpOperand *srcOpOperand : src.getOutputBuffersOpOperands()) { // W
191+
for (OpOperand *srcOpOperand : src.getOutputBufferOperands()) { // W
192192
// RAW graph
193-
for (OpOperand *dstOpOperand : dst.getInputBuffersOpOperands()) // R
194-
if (aliases.alias(srcOpOperand->get(), dstOpOperand->get())) // RAW alias
193+
for (OpOperand *dstOpOperand : dst.getInputBufferOperands()) // R
194+
if (aliases.alias(srcOpOperand->get(), dstOpOperand->get())) // RAW alias
195195
addDependenceElem(DependenceType::RAW, srcOpOperand, dstOpOperand);
196196
// WAW graph
197-
for (OpOperand *dstOpOperand : dst.getOutputBuffersOpOperands()) // W
197+
for (OpOperand *dstOpOperand : dst.getOutputBufferOperands()) // W
198198
if (aliases.alias(srcOpOperand->get(), dstOpOperand->get())) // WAW alias
199199
addDependenceElem(DependenceType::WAW, srcOpOperand, dstOpOperand);
200200
}
201-
for (OpOperand *srcOpOperand : src.getInputBuffersOpOperands()) { // R
201+
for (OpOperand *srcOpOperand : src.getInputBufferOperands()) { // R
202202
// RAR graph
203-
for (OpOperand *dstOpOperand : dst.getInputBuffersOpOperands()) // R
204-
if (aliases.alias(srcOpOperand->get(), dstOpOperand->get())) // RAR alias
203+
for (OpOperand *dstOpOperand : dst.getInputBufferOperands()) // R
204+
if (aliases.alias(srcOpOperand->get(), dstOpOperand->get())) // RAR alias
205205
addDependenceElem(DependenceType::RAR, srcOpOperand, dstOpOperand);
206206
// WAR graph
207-
for (OpOperand *dstOpOperand : dst.getOutputBuffersOpOperands()) // W
207+
for (OpOperand *dstOpOperand : dst.getOutputBufferOperands()) // W
208208
if (aliases.alias(srcOpOperand->get(), dstOpOperand->get())) // WAR alias
209209
addDependenceElem(DependenceType::WAR, srcOpOperand, dstOpOperand);
210210
}

0 commit comments

Comments
 (0)