[PATCH] D72642: [mlir] Enable printing of FuncOp in the generic form.

River Riddle via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 14 15:14:23 PST 2020


rriddle updated this revision to Diff 238118.
rriddle added a comment.

Address comments


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D72642/new/

https://reviews.llvm.org/D72642

Files:
  mlir/lib/IR/AsmPrinter.cpp
  mlir/test/IR/wrapping_op.mlir


Index: mlir/test/IR/wrapping_op.mlir
===================================================================
--- mlir/test/IR/wrapping_op.mlir
+++ mlir/test/IR/wrapping_op.mlir
@@ -2,7 +2,7 @@
 // RUN: mlir-opt -mlir-print-op-generic -mlir-print-debuginfo %s | FileCheck %s --check-prefix=CHECK-GENERIC
 
 // CHECK-LABEL: func @wrapping_op
-// CHECK-GENERIC-LABEL: func @wrapping_op
+// CHECK-GENERIC: "func"
 func @wrapping_op(%arg0 : i32, %arg1 : f32) -> (i3, i2, i1) {
 // CHECK: %0:3 = test.wrapping_region wraps "some.op"(%arg1, %arg0) {test.attr = "attr"} : (f32, i32) -> (i1, i2, i3)
 // CHECK-GENERIC: "test.wrapping_region"() ( {
@@ -12,3 +12,4 @@
   %res:3 = test.wrapping_region wraps "some.op"(%arg1, %arg0) { test.attr = "attr" } : (f32, i32) -> (i1, i2, i3) loc("some_NameLoc")
   return %res#2, %res#1, %res#0 : i3, i2, i1
 }
+// CHECK-GENERIC: sym_name = "wrapping_op"
Index: mlir/lib/IR/AsmPrinter.cpp
===================================================================
--- mlir/lib/IR/AsmPrinter.cpp
+++ mlir/lib/IR/AsmPrinter.cpp
@@ -1936,16 +1936,14 @@
     os << " = ";
   }
 
-  // TODO(riverriddle): FuncOp cannot be round-tripped currently, as
-  // FunctionType cannot be used in a TypeAttr.
-  if (printerFlags.shouldPrintGenericOpForm() && !isa<FuncOp>(op))
-    return printGenericOp(op);
-
-  // Check to see if this is a known operation.  If so, use the registered
-  // custom printer hook.
-  if (auto *opInfo = op->getAbstractOperation()) {
-    opInfo->printAssembly(op, *this);
-    return;
+  // If requested, always print the generic form.
+  if (!printerFlags.shouldPrintGenericOpForm()) {
+    // Check to see if this is a known operation.  If so, use the registered
+    // custom printer hook.
+    if (auto *opInfo = op->getAbstractOperation()) {
+      opInfo->printAssembly(op, *this);
+      return;
+    }
   }
 
   // Otherwise print with the generic assembly form.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D72642.238118.patch
Type: text/x-patch
Size: 1909 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200114/1c90a5b6/attachment.bin>


More information about the llvm-commits mailing list