diff --git a/mlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp b/mlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp --- a/mlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp @@ -54,7 +54,8 @@ Value resultTensor = outputs[resultIndex]; // Clone output buffers whose value is actually used. - if (linalgOp.payloadUsesValueFromOutputOperandIndex(resultIndex)) { + OpOperand *tiedOpOperand = linalgOp.getOutputOperand(resultIndex); + if (linalgOp.payloadUsesValueFromOperand(tiedOpOperand)) { resultBuffers.push_back(cloneMemref(loc, resultTensor, b)); continue; } diff --git a/mlir/lib/Dialect/Linalg/Transforms/Detensorize.cpp b/mlir/lib/Dialect/Linalg/Transforms/Detensorize.cpp --- a/mlir/lib/Dialect/Linalg/Transforms/Detensorize.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/Detensorize.cpp @@ -48,10 +48,11 @@ bool shouldBeDetensored(Operation *op, TypeConverter typeConverter) { GenericOp genericOp = dyn_cast_or_null(op); - return genericOp && llvm::all_of(genericOp.getShapedOperandTypes(), - [&](ShapedType shapedType) { - return !typeConverter.isLegal(shapedType); - }); + return genericOp && + llvm::all_of( + genericOp.getInputAndOutputOperands(), [&](OpOperand *opOperand) { + return !typeConverter.isLegal(opOperand->get().getType()); + }); } /// A conversion patttern for detensoring `linalg.generic` ops. diff --git a/mlir/lib/Dialect/Linalg/Transforms/Interchange.cpp b/mlir/lib/Dialect/Linalg/Transforms/Interchange.cpp --- a/mlir/lib/Dialect/Linalg/Transforms/Interchange.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/Interchange.cpp @@ -56,9 +56,8 @@ // 2. Compute the interchanged indexing maps. SmallVector newIndexingMaps; - ArrayRef indexingMaps = genericOp.indexing_maps().getValue(); - for (unsigned i = 0, e = genericOp.getNumShapedOperands(); i != e; ++i) { - AffineMap m = indexingMaps[i].cast().getValue(); + for (OpOperand *opOperand : genericOp.getInputAndOutputOperands()) { + AffineMap m = genericOp.getTiedIndexingMap(opOperand); if (!permutationMap.isEmpty()) m = m.compose(permutationMap); newIndexingMaps.push_back(AffineMapAttr::get(m));