forked from OSchip/llvm-project
b30d87a90b
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 |
||
---|---|---|
.. | ||
Serialization | ||
Transforms | ||
CMakeLists.txt | ||
DialectRegistration.cpp | ||
LayoutUtils.cpp | ||
SPIRVCanonicalization.td | ||
SPIRVDialect.cpp | ||
SPIRVLowering.cpp | ||
SPIRVOps.cpp | ||
SPIRVTypes.cpp |