OSDN Git Service

[mlir][Linalg] Add tensor support to Linalg EDSC Builders
authorNicolas Vasilache <ntv@google.com>
Wed, 22 Jan 2020 00:37:18 +0000 (19:37 -0500)
committerNicolas Vasilache <ntv@google.com>
Wed, 22 Jan 2020 00:37:54 +0000 (19:37 -0500)
commit89e19e8eddd6dd0dc38d595b6784fb9ce65d9972
tree1f50a15ff7fea553e318fd88147410467a3c20f9
parente03ead6771fc97b11cb0c94b7f023142184ad25f
[mlir][Linalg] Add tensor support to Linalg EDSC Builders

Summary:
This diff extends the Linalg EDSC builders so we can easily create mixed
tensor/buffer linalg.generic ops. This is expected to be useful for
HLO -> Linalg lowering.

The `StructuredIndexed` struct is made to derive from `ValueHandle` and can
now capture a type + indexing expressions. This is used to represent return
tensors.

Pointwise unary and binary builders are extended to allow both output buffers
and return tensors. This has implications on the number of region arguments.

Reviewers: ftynse, herhut, hanchung, asaadaldien, stellaraccident

Reviewed By: asaadaldien

Subscribers: merge_guards_bot, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D72863
mlir/include/mlir/Dialect/Linalg/EDSC/Builders.h
mlir/lib/Dialect/Linalg/EDSC/Builders.cpp
mlir/test/EDSC/builder-api-test.cpp