llvm-project/mlir/lib/Dialect/SPIRV
Lei Zhang b30d87a90b [mlir][spirv] Add basic definitions for supporting availability
SPIR-V has a few mechanisms to control op availability: version,
extension, and capabilities. These mechanisms are considered as
different availability classes.

This commit introduces basic definitions for modelling SPIR-V
availability classes. Specifically, an `Availability` class is
added to SPIRVBase.td, along with two subclasses: MinVersion
and MaxVersion for versioning. SPV_Op is extended to take a
list of `Availability`. Each `Availability` instance carries
information for generating op interfaces for the corresponding
availability class and also the concrete availability
requirements.

With the availability spec on ops, we can now auto-generate the
op interfaces of all SPIR-V availability classes and also
synthesize the op's implementations of these interfaces. The
interface generation is done via new TableGen backends
-gen-avail-interface-{decls|defs}. The op's implementation is
done via -gen-spirv-avail-impls.

Differential Revision: https://reviews.llvm.org/D71930
2019-12-27 16:25:09 -05:00
..
Serialization NFC: Replace ValuePtr with Value and remove it now that Value is value-typed. 2019-12-23 16:36:53 -08:00
Transforms NFC: Replace ValuePtr with Value and remove it now that Value is value-typed. 2019-12-23 16:36:53 -08:00
CMakeLists.txt [mlir][spirv] Add basic definitions for supporting availability 2019-12-27 16:25:09 -05:00
DialectRegistration.cpp Adjust License.txt file to use the LLVM license 2019-12-23 15:33:37 -08:00
LayoutUtils.cpp Adjust License.txt file to use the LLVM license 2019-12-23 15:33:37 -08:00
SPIRVCanonicalization.td NFC: Wire up DRR settings for SPIR-V canonicalization patterns 2019-11-23 06:59:23 -08:00
SPIRVDialect.cpp NFC: Replace ValuePtr with Value and remove it now that Value is value-typed. 2019-12-23 16:36:53 -08:00
SPIRVLowering.cpp NFC: Replace ValuePtr with Value and remove it now that Value is value-typed. 2019-12-23 16:36:53 -08:00
SPIRVOps.cpp [mlir][spirv] Add basic definitions for supporting availability 2019-12-27 16:25:09 -05:00
SPIRVTypes.cpp Adjust License.txt file to use the LLVM license 2019-12-23 15:33:37 -08:00