Add support for function result attributes.
authorSean Silva <silvasean@google.com>
Fri, 18 Oct 2019 23:02:56 +0000 (16:02 -0700)
committerA. Unique TensorFlower <gardener@tensorflow.org>
Fri, 18 Oct 2019 23:03:28 +0000 (16:03 -0700)
commit9c9a7e9268bdd4fe3433ea4499eebbd74e015919
tree6bc78019d8569d99e489ea0d912fceaba05cb0e0
parent9e7e297da33be70ec41335800c05b554f5de065b
Add support for function result attributes.

This allows dialect-specific attributes to be attached to func results. (or more specifically, FunctionLike ops).

For example:

```
func @f() -> (i32 {my_dialect.some_attr = 3})
```

This attaches my_dialect.some_attr with value 3 to the first result of func @f.

Another more complex example:

```
func @g() -> (i32, f32 {my_dialect.some_attr = "foo", other_dialect.some_other_attr = [1,2,3]}, i1)
```

Here, the second result has two attributes attached.

PiperOrigin-RevId: 275564165
13 files changed:
mlir/g3doc/LangRef.md
mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
mlir/include/mlir/IR/Dialect.h
mlir/include/mlir/IR/Function.h
mlir/include/mlir/IR/FunctionSupport.h
mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
mlir/lib/IR/Dialect.cpp
mlir/lib/IR/FunctionSupport.cpp
mlir/test/IR/invalid-func-op.mlir
mlir/test/IR/invalid.mlir
mlir/test/IR/parser.mlir
mlir/test/lib/TestDialect/TestDialect.cpp
mlir/test/lib/TestDialect/TestDialect.h