[Mlir-commits] [mlir] 2eaadfc - [NFC] Use llvm::hasSingleElement() in place of .size() == 1
Rahul Joshi
llvmlistbot at llvm.org
Wed Jun 17 13:26:57 PDT 2020
Author: Rahul Joshi
Date: 2020-06-17T13:26:10-07:00
New Revision: 2eaadfc4fe662e1ba312929cd650ed349fe7f2b4
URL: https://github.com/llvm/llvm-project/commit/2eaadfc4fe662e1ba312929cd650ed349fe7f2b4
DIFF: https://github.com/llvm/llvm-project/commit/2eaadfc4fe662e1ba312929cd650ed349fe7f2b4.diff
LOG: [NFC] Use llvm::hasSingleElement() in place of .size() == 1
- Also use functions in Region instead of Region::getBlocks() where possible.
Differential Revision: https://reviews.llvm.org/D82032
Added:
Modified:
mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
mlir/lib/Dialect/Linalg/EDSC/Builders.cpp
mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
mlir/lib/Transforms/LoopFusion.cpp
mlir/lib/Transforms/MemRefDataFlowOpt.cpp
mlir/lib/Transforms/ViewOpGraph.cpp
mlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp
Removed:
################################################################################
diff --git a/mlir/lib/Dialect/GPU/IR/GPUDialect.cpp b/mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
index 0846f2168a13..6e45241b1256 100644
--- a/mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
+++ b/mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
@@ -218,25 +218,25 @@ void LaunchOp::build(OpBuilder &builder, OperationState &result,
}
KernelDim3 LaunchOp::getBlockIds() {
- assert(!body().getBlocks().empty() && "FuncOp body must not be empty.");
+ assert(!body().empty() && "LaunchOp body must not be empty.");
auto args = body().getBlocks().front().getArguments();
return KernelDim3{args[0], args[1], args[2]};
}
KernelDim3 LaunchOp::getThreadIds() {
- assert(!body().getBlocks().empty() && "FuncOp body must not be empty.");
+ assert(!body().empty() && "LaunchOp body must not be empty.");
auto args = body().getBlocks().front().getArguments();
return KernelDim3{args[3], args[4], args[5]};
}
KernelDim3 LaunchOp::getGridSize() {
- assert(!body().getBlocks().empty() && "FuncOp body must not be empty.");
+ assert(!body().empty() && "LaunchOp body must not be empty.");
auto args = body().getBlocks().front().getArguments();
return KernelDim3{args[6], args[7], args[8]};
}
KernelDim3 LaunchOp::getBlockSize() {
- assert(!body().getBlocks().empty() && "FuncOp body must not be empty.");
+ assert(!body().empty() && "LaunchOp body must not be empty.");
auto args = body().getBlocks().front().getArguments();
return KernelDim3{args[9], args[10], args[11]};
}
diff --git a/mlir/lib/Dialect/Linalg/EDSC/Builders.cpp b/mlir/lib/Dialect/Linalg/EDSC/Builders.cpp
index 0efbf8545185..d126cd4c5c3f 100644
--- a/mlir/lib/Dialect/Linalg/EDSC/Builders.cpp
+++ b/mlir/lib/Dialect/Linalg/EDSC/Builders.cpp
@@ -140,7 +140,7 @@ Operation *mlir::edsc::makeGenericLinalgOp(
SmallVector<Value, 8> handles(blockTypes.size());
BlockBuilder(&b, op->getRegion(0), blockTypes,
handles)([&] { regionBuilder(b.getBlock()->getArguments()); });
- assert(op->getRegion(0).getBlocks().size() == 1);
+ assert(llvm::hasSingleElement(op->getRegion(0)));
return op;
}
diff --git a/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp b/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
index fe2f123a00cb..2342cae661c8 100644
--- a/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
+++ b/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
@@ -202,7 +202,7 @@ static LogicalResult verifyGenericOp(GenericOpType op) {
<< " inputs (tensor or buffer) and output buffer operands";
auto ®ion = op.region();
- if (region.getBlocks().size() != 1)
+ if (!llvm::hasSingleElement(region))
return op.emitOpError("expected region with 1 block");
if (failed(BlockArgsVerifier<GenericOpType>::verify(op, region.front())))
return failure();
diff --git a/mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp b/mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
index ac6903b4bd88..bde163e3ee72 100644
--- a/mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
+++ b/mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
@@ -182,7 +182,7 @@ static void transformIndexedGenericOpIndices(
indexedGenericOp.emitOpError("expected a region");
return;
}
- auto &block = region.getBlocks().front();
+ auto &block = region.front();
OpBuilder::InsertionGuard g(b);
b.setInsertionPointToStart(&block);
diff --git a/mlir/lib/Transforms/LoopFusion.cpp b/mlir/lib/Transforms/LoopFusion.cpp
index c3b8912017e5..0ae6657babcc 100644
--- a/mlir/lib/Transforms/LoopFusion.cpp
+++ b/mlir/lib/Transforms/LoopFusion.cpp
@@ -636,7 +636,7 @@ bool MemRefDependenceGraph::init(FuncOp f) {
DenseMap<Value, SetVector<unsigned>> memrefAccesses;
// TODO: support multi-block functions.
- if (f.getBlocks().size() != 1)
+ if (!llvm::hasSingleElement(f))
return false;
DenseMap<Operation *, unsigned> forToNodeMap;
diff --git a/mlir/lib/Transforms/MemRefDataFlowOpt.cpp b/mlir/lib/Transforms/MemRefDataFlowOpt.cpp
index a93ffd674653..2b288d392cd7 100644
--- a/mlir/lib/Transforms/MemRefDataFlowOpt.cpp
+++ b/mlir/lib/Transforms/MemRefDataFlowOpt.cpp
@@ -178,7 +178,7 @@ void MemRefDataFlowOpt::forwardStoreToLoad(AffineLoadOp loadOp) {
void MemRefDataFlowOpt::runOnFunction() {
// Only supports single block functions at the moment.
FuncOp f = getFunction();
- if (f.getBlocks().size() != 1) {
+ if (!llvm::hasSingleElement(f)) {
markAllAnalysesPreserved();
return;
}
diff --git a/mlir/lib/Transforms/ViewOpGraph.cpp b/mlir/lib/Transforms/ViewOpGraph.cpp
index b5d99c67212d..62c6ce7e01d6 100644
--- a/mlir/lib/Transforms/ViewOpGraph.cpp
+++ b/mlir/lib/Transforms/ViewOpGraph.cpp
@@ -130,7 +130,7 @@ struct PrintOpPass : public PrintOpBase<PrintOpPass> {
for (Region ®ion : op.getRegions()) {
for (auto indexed_block : llvm::enumerate(region)) {
// Suffix block number if there are more than 1 block.
- auto blockName = region.getBlocks().size() == 1
+ auto blockName = llvm::hasSingleElement(region)
? ""
: ("__" + llvm::utostr(indexed_block.index()));
llvm::WriteGraph(os, &indexed_block.value(), short_names,
diff --git a/mlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp b/mlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp
index 27b94d71116e..a6719b060aac 100644
--- a/mlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp
+++ b/mlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp
@@ -248,7 +248,7 @@ void VectorizerTestPass::runOnFunction() {
// Only support single block functions at this point.
FuncOp f = getFunction();
- if (f.getBlocks().size() != 1)
+ if (!llvm::hasSingleElement(f))
return;
std::string str;
More information about the Mlir-commits
mailing list