aboutsummaryrefslogtreecommitdiff
path: root/mlir/lib/IR/Region.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mlir/lib/IR/Region.cpp')
-rw-r--r--mlir/lib/IR/Region.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/mlir/lib/IR/Region.cpp b/mlir/lib/IR/Region.cpp
index 46b6298..15a941f 100644
--- a/mlir/lib/IR/Region.cpp
+++ b/mlir/lib/IR/Region.cpp
@@ -253,6 +253,21 @@ void Region::OpIterator::skipOverBlocksWithNoOps() {
operation = block->begin();
}
+llvm::raw_ostream &mlir::operator<<(llvm::raw_ostream &os, Region &region) {
+ if (!region.getParentOp()) {
+ os << "Region has no parent op";
+ } else {
+ os << "Region #" << region.getRegionNumber() << " in operation "
+ << region.getParentOp()->getName();
+ }
+ for (auto it : llvm::enumerate(region.getBlocks())) {
+ os << "\n Block #" << it.index() << ":";
+ for (Operation &op : it.value().getOperations())
+ os << "\n " << OpWithFlags(&op, OpPrintingFlags().skipRegions());
+ }
+ return os;
+}
+
//===----------------------------------------------------------------------===//
// RegionRange
//===----------------------------------------------------------------------===//