Skip to content

Commit b722dd7

Browse files
committed
Add optional for the util function
1 parent 983e956 commit b722dd7

File tree

3 files changed

+7
-8
lines changed

3 files changed

+7
-8
lines changed

mlir/include/mlir/Dialect/AMDGPU/Transforms/Utils.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ namespace amdgpu {
1717
/// - Considers memref::LoadOp, vector::LoadOp, vector::TransferReadOp
1818
/// - Considers memref::StoreOp, vector::StoreOp, vector::TransferWriteOp
1919
/// - Excludes subview op
20-
Operation::operand_range getIndices(Operation *op);
20+
std::optional<Operation::operand_range> getIndices(Operation *op);
2121
void setIndices(Operation *op, ArrayRef<Value> indices);
2222

2323
} // namespace amdgpu

mlir/lib/Dialect/AMDGPU/Transforms/OptimizeSharedMemory.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,13 +138,13 @@ getShmReadAndWriteOps(Operation *parentOp, Value shmMemRef,
138138
if (llvm::any_of(readOps, [](Operation *op) {
139139
return !isa<memref::LoadOp, vector::LoadOp, vector::TransferReadOp>(
140140
op) ||
141-
amdgpu::getIndices(op).size() < 2;
141+
amdgpu::getIndices(op)->size() < 2;
142142
}))
143143
return failure();
144144
if (llvm::any_of(writeOps, [](Operation *op) {
145145
return !isa<memref::StoreOp, vector::StoreOp, vector::TransferWriteOp>(
146146
op) ||
147-
amdgpu::getIndices(op).size() < 2;
147+
amdgpu::getIndices(op)->size() < 2;
148148
}))
149149
return failure();
150150

@@ -199,7 +199,7 @@ mlir::amdgpu::optimizeSharedMemoryReadsAndWrites(Operation *parentOp,
199199
builder.setInsertionPoint(shmWriteOp);
200200

201201
auto indices = amdgpu::getIndices(shmWriteOp);
202-
SmallVector<Value, 4> transformedIndices(indices.begin(), indices.end());
202+
SmallVector<Value, 4> transformedIndices(indices->begin(), indices->end());
203203
transformIndices(builder, shmWriteOp->getLoc(), transformedIndices,
204204
memRefType, srcDim, tgtDim);
205205
amdgpu::setIndices(shmWriteOp, transformedIndices);
@@ -211,7 +211,7 @@ mlir::amdgpu::optimizeSharedMemoryReadsAndWrites(Operation *parentOp,
211211
builder.setInsertionPoint(shmReadOp);
212212

213213
auto indices = amdgpu::getIndices(shmReadOp);
214-
SmallVector<Value, 4> transformedIndices(indices.begin(), indices.end());
214+
SmallVector<Value, 4> transformedIndices(indices->begin(), indices->end());
215215
transformIndices(builder, shmReadOp->getLoc(), transformedIndices,
216216
memRefType, srcDim, tgtDim);
217217
amdgpu::setIndices(shmReadOp, transformedIndices);

mlir/lib/Dialect/AMDGPU/Transforms/Utils.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
using namespace mlir;
1616
using namespace mlir::amdgpu;
1717

18-
Operation::operand_range amdgpu::getIndices(Operation *op) {
18+
std::optional<Operation::operand_range> amdgpu::getIndices(Operation *op) {
1919
if (auto loadOp = dyn_cast<memref::LoadOp>(op))
2020
return loadOp.getIndices();
2121
if (auto storeOp = dyn_cast<memref::StoreOp>(op))
@@ -28,7 +28,7 @@ Operation::operand_range amdgpu::getIndices(Operation *op) {
2828
return transferReadOp.getIndices();
2929
if (auto transferWriteOp = dyn_cast<vector::TransferWriteOp>(op))
3030
return transferWriteOp.getIndices();
31-
llvm_unreachable("unsupported op type");
31+
return std::nullopt;
3232
}
3333

3434
void amdgpu::setIndices(Operation *op, ArrayRef<Value> indices) {
@@ -44,5 +44,4 @@ void amdgpu::setIndices(Operation *op, ArrayRef<Value> indices) {
4444
return transferReadOp.getIndicesMutable().assign(indices);
4545
if (auto transferWriteOp = dyn_cast<vector::TransferWriteOp>(op))
4646
return transferWriteOp.getIndicesMutable().assign(indices);
47-
llvm_unreachable("unsupported op type");
4847
}

0 commit comments

Comments
 (0)