forked from OSchip/llvm-project
e41ebbecf9
The change is based on the proposal from the following discussion: https://llvm.discourse.group/t/rfc-memreftype-affine-maps-list-vs-single-item/3968 * Introduce `MemRefLayoutAttr` interface to get `AffineMap` from an `Attribute` (`AffineMapAttr` implements this interface). * Store layout as a single generic `MemRefLayoutAttr`. This change removes the affine map composition feature and related API. Actually, while the `MemRefType` itself supported it, almost none of the upstream can work with more than 1 affine map in `MemRefType`. The introduced `MemRefLayoutAttr` allows to re-implement this feature in a more stable way - via separate attribute class. Also the interface allows to use different layout representations rather than affine maps. For example, the described "stride + offset" form, which is currently supported in ASM parser only, can now be expressed as separate attribute. Reviewed By: ftynse, bondhugula Differential Revision: https://reviews.llvm.org/D111553 |
||
---|---|---|
.. | ||
AffineParser.cpp | ||
AsmParserImpl.h | ||
AsmParserState.cpp | ||
AttributeParser.cpp | ||
CMakeLists.txt | ||
DialectSymbolParser.cpp | ||
Lexer.cpp | ||
Lexer.h | ||
LocationParser.cpp | ||
Parser.cpp | ||
Parser.h | ||
ParserState.h | ||
Token.cpp | ||
Token.h | ||
TokenKinds.def | ||
TypeParser.cpp |