Add support for using the ODS result names as the Asm result names for multi-result...
authorRiver Riddle <riverriddle@google.com>
Thu, 21 Nov 2019 22:34:03 +0000 (14:34 -0800)
committerA. Unique TensorFlower <gardener@tensorflow.org>
Thu, 21 Nov 2019 22:55:46 +0000 (14:55 -0800)
commitc35378003c64b87e02542187ae583b3fb6623df7
tree173a2c8249e8c10e3a551664c931c0b89a93fa4e
parentd7c17195a4398467e5149f9537cb957cd48341d6
Add support for using the ODS result names as the Asm result names for multi-result operations.

This changes changes the OpDefinitionsGen to automatically add the OpAsmOpInterface for operations with multiple result groups using the provided ODS names. We currently just limit the generation to multi-result ops as most single result operations don't have an interesting name(result/output/etc.). An example is shown below:
// The following operation:
def MyOp : ... {
  let results = (outs AnyType:$first, Variadic<AnyType>:$middle, AnyType);
}

// May now be printed as:
%first, %middle:2, %0 = "my.op" ...

PiperOrigin-RevId: 281834156
mlir/lib/TableGen/Operator.cpp
mlir/test/lib/TestDialect/TestDialect.cpp
mlir/test/lib/TestDialect/TestOps.td
mlir/test/mlir-tblgen/op-decl.td
mlir/test/mlir-tblgen/pattern.mlir
mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp