llvm-project/mlir/lib/Transforms/Utils
Alexandre E. Eichenberger a14a2805b0 [MLIR] MemRef Normalization for Dialects
When dealing with dialects that will results in function calls to
external libraries, it is important to be able to handle maps as some
dialects may require mapped data.  Before this patch, the detection of
whether normalization can apply or not, operations are compared to an
explicit list of operations (`alloc`, `dealloc`, `return`) or to the
presence of specific operation interfaces (`AffineReadOpInterface`,
`AffineWriteOpInterface`, `AffineDMAStartOp`, or `AffineDMAWaitOp`).

This patch add a trait, `MemRefsNormalizable` to determine if an
operation can have its `memrefs` normalized.

This trait can be used in turn by dialects to assert that such
operations are compatible with normalization of `memrefs` with
nontrivial memory layout specification. An example is given in the
literal tests.

Differential Revision: https://reviews.llvm.org/D86236
2020-08-27 20:26:59 +05:30
..
CMakeLists.txt [mlir] NFC: Rename LoopOps dialect to SCF (Structured Control Flow) 2020-05-11 15:04:27 +02:00
FoldUtils.cpp Merge OpFolderDialectInterface with DialectFoldInterface (NFC) 2020-08-13 00:39:22 +00:00
GreedyPatternRewriteDriver.cpp [mlir][NFC] Remove usernames and google bug numbers from TODO comments. 2020-07-07 01:40:52 -07:00
InliningUtils.cpp [NFC] Add getArgumentTypes() to Region 2020-07-28 18:27:42 -07:00
LoopFusionUtils.cpp [MLIR][NFC] Fix clang tidy warnings in misc utilities 2020-07-16 00:27:30 +05:30
LoopUtils.cpp [MLIR] Consider AffineIfOp when getting the index set of an Op wrapped in nested loops 2020-08-09 03:16:03 +05:30
RegionUtils.cpp [mlir] Fix bug in block merging when the types of the operands differ 2020-08-26 01:17:20 -07:00
Utils.cpp [MLIR] MemRef Normalization for Dialects 2020-08-27 20:26:59 +05:30