aboutsummaryrefslogtreecommitdiff
path: root/mlir/lib/IR
diff options
context:
space:
mode:
Diffstat (limited to 'mlir/lib/IR')
-rw-r--r--mlir/lib/IR/Diagnostics.cpp4
-rw-r--r--mlir/lib/IR/MLIRContext.cpp4
-rw-r--r--mlir/lib/IR/Region.cpp15
3 files changed, 21 insertions, 2 deletions
diff --git a/mlir/lib/IR/Diagnostics.cpp b/mlir/lib/IR/Diagnostics.cpp
index 776b5c6..f4c9242 100644
--- a/mlir/lib/IR/Diagnostics.cpp
+++ b/mlir/lib/IR/Diagnostics.cpp
@@ -138,6 +138,10 @@ Diagnostic &Diagnostic::operator<<(Operation &op) {
return appendOp(op, OpPrintingFlags());
}
+Diagnostic &Diagnostic::operator<<(OpWithFlags op) {
+ return appendOp(*op.getOperation(), op.flags());
+}
+
Diagnostic &Diagnostic::appendOp(Operation &op, const OpPrintingFlags &flags) {
std::string str;
llvm::raw_string_ostream os(str);
diff --git a/mlir/lib/IR/MLIRContext.cpp b/mlir/lib/IR/MLIRContext.cpp
index 5f63fe6..73219c6 100644
--- a/mlir/lib/IR/MLIRContext.cpp
+++ b/mlir/lib/IR/MLIRContext.cpp
@@ -709,7 +709,7 @@ ArrayRef<RegisteredOperationName> MLIRContext::getRegisteredOperations() {
/// Return information for registered operations by dialect.
ArrayRef<RegisteredOperationName>
MLIRContext::getRegisteredOperationsByDialect(StringRef dialectName) {
- auto lowerBound = llvm::lower_bound(
+ auto *lowerBound = llvm::lower_bound(
impl->sortedRegisteredOperations, dialectName, [](auto &lhs, auto &rhs) {
return lhs.getDialect().getNamespace().compare(rhs);
});
@@ -718,7 +718,7 @@ MLIRContext::getRegisteredOperationsByDialect(StringRef dialectName) {
lowerBound->getDialect().getNamespace() != dialectName)
return ArrayRef<RegisteredOperationName>();
- auto upperBound =
+ auto *upperBound =
std::upper_bound(lowerBound, impl->sortedRegisteredOperations.end(),
dialectName, [](auto &lhs, auto &rhs) {
return lhs.compare(rhs.getDialect().getNamespace());
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
//===----------------------------------------------------------------------===//