llvm-project/mlir/lib
Alex Zinenko 5988a3b7a0 [mlir] Linalg: ensure tile-and-pad always creates padding as requested
Initially, the padding transformation and the related operation were only used
to guarantee static shapes of subtensors in tiled operations. The
transformation would not insert the padding operation if the shapes were
already static, and the overall code generation would actively remove such
"noop" pads. However, this transformation can be also used to pack data into
smaller tensors and marshall them into faster memory, regardless of the size
mismatches. In context of expert-driven transformation, we should assume that,
if padding is requested, a potentially padded tensor must be always created.
Update the transformation accordingly. To do this, introduce an optional
`packing` attribute to the `pad_tensor` op that serves as an indication that
the padding is an intentional choice (as opposed to side effect of type
normalization) and should be left alone by cleanups.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D110425
2021-09-24 18:40:13 +02:00
..
Analysis [MLIR] PresburgerSet: support divisions in operations 2021-09-24 15:36:47 +05:30
Bindings/Python [MLIR] [Python] Make Attribute and Type hashable 2021-09-22 19:59:03 -07:00
CAPI [mlir] Add value_begin/value_end methods to DenseElementsAttr 2021-09-21 01:57:43 +00:00
Conversion [mlir] Linalg: ensure tile-and-pad always creates padding as requested 2021-09-24 18:40:13 +02:00
Dialect [mlir] Linalg: ensure tile-and-pad always creates padding as requested 2021-09-24 18:40:13 +02:00
ExecutionEngine [mlir][sparse] Moved a conditional from the RT library to the generated MLIR. 2021-09-23 12:44:17 -07:00
IR [DialectAsmPrinter] Add missing 'printAttributeWithoutType' member. 2021-09-21 18:45:24 -07:00
Interfaces [mlir] Add value_begin/value_end methods to DenseElementsAttr 2021-09-21 01:57:43 +00:00
Parser [OpAsmParser] Add a parseCommaSeparatedList helper and beef up Delimeter. 2021-09-20 20:59:11 -07:00
Pass Remove unused llvm/Support/Parallel.h from MLIR (NFC) 2021-09-14 23:30:42 +00:00
Reducer [mlir-reduce] Fix the memory leak and recycle unused modules. 2021-07-08 20:03:47 +08:00
Rewrite [SymbolRefAttr] Revise SymbolRefAttr to hold a StringAttr. 2021-08-29 21:54:47 -07:00
Support Make the --mlir-disable-threading command line option overrides the C++ API usage 2021-09-15 03:20:48 +00:00
TableGen [mlir-tblgen] Add DagNode StaticMatcher. 2021-09-20 23:37:42 +00:00
Target [mlir] Always create a list of alias scopes when emitting LLVM IR 2021-09-22 00:00:46 +02:00
Tools [mlir-lsp-server] Only use one MLIRContext per MLIRTextFile 2021-08-04 20:09:07 +00:00
Transforms Reset operation when canceling root update transaction 2021-09-22 16:05:08 -04:00
Translation [mlir] run the verifier before translating a module 2021-07-28 18:15:58 +02:00
CMakeLists.txt Re-engineer MLIR python build support. 2021-07-27 15:54:58 +00:00