Commit 20c6e074 authored by River Riddle's avatar River Riddle
Browse files

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

Summary:
This was previously disabled as FunctionType TypeAttrs could not be roundtripped in the IR. This has been fixed, so we can now generically print FuncOp.

Depends On D72429

Reviewed By: jpienaar, mehdi_amini

Differential Revision: https://reviews.llvm.org/D72642
parent cbc9d22e
Loading
Loading
Loading
Loading
+8 −10
Original line number Diff line number Diff line
@@ -1936,17 +1936,15 @@ void OperationPrinter::printOperation(Operation *op) {
    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);

  // 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.
  printGenericOp(op);
+2 −1
Original line number Diff line number Diff line
@@ -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 @@ func @wrapping_op(%arg0 : i32, %arg1 : f32) -> (i3, i2, i1) {
  %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"