summaryrefslogtreecommitdiffstats
path: root/mlir/lib/Dialect/VectorOps
diff options
context:
space:
mode:
authorAart Bik <ajcbik@google.com>2019-12-18 11:23:16 -0800
committerA. Unique TensorFlower <gardener@tensorflow.org>2019-12-18 11:31:34 -0800
commitd9b500d3bb151bfb96073b0d66e8338a5c0186d5 (patch)
treefd385a47ba52f5c4f274882f50cad6aecb3a2d0b /mlir/lib/Dialect/VectorOps
parentc169852fc5c5efb4b01600477da00e6ef2517231 (diff)
downloadbcm5719-llvm-d9b500d3bb151bfb96073b0d66e8338a5c0186d5.tar.gz
bcm5719-llvm-d9b500d3bb151bfb96073b0d66e8338a5c0186d5.zip
[VectorOps] Add vector.print definition, with lowering support
Examples: vector.print %f : f32 vector.print %x : vector<4xf32> vector.print %y : vector<3x4xf32> vector.print %z : vector<2x3x4xf32> LLVM lowering replaces these with fully unrolled calls into a small runtime support library that provides some basic printing operations (single value, opening closing bracket, comma, newline). PiperOrigin-RevId: 286230325
Diffstat (limited to 'mlir/lib/Dialect/VectorOps')
-rw-r--r--mlir/lib/Dialect/VectorOps/VectorOps.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/mlir/lib/Dialect/VectorOps/VectorOps.cpp b/mlir/lib/Dialect/VectorOps/VectorOps.cpp
index ff4ff2cb540..4ed0902b292 100644
--- a/mlir/lib/Dialect/VectorOps/VectorOps.cpp
+++ b/mlir/lib/Dialect/VectorOps/VectorOps.cpp
@@ -1587,6 +1587,23 @@ static LogicalResult verify(CreateMaskOp op) {
return success();
}
+//===----------------------------------------------------------------------===//
+// PrintOp
+//===----------------------------------------------------------------------===//
+
+ParseResult parsePrintOp(OpAsmParser &parser, OperationState &result) {
+ OpAsmParser::OperandType source;
+ Type sourceType;
+ return failure(parser.parseOperand(source) ||
+ parser.parseColonType(sourceType) ||
+ parser.resolveOperand(source, sourceType, result.operands));
+}
+
+static void print(OpAsmPrinter &p, PrintOp op) {
+ p << op.getOperationName() << ' ' << *op.source() << " : "
+ << op.getPrintType();
+}
+
namespace {
// Pattern to rewrite a CreateMaskOp with a ConstantMaskOp.
OpenPOWER on IntegriCloud